Рубрики
Без рубрики

JSF управлял управляемой собственностью

JSF ManagedBean, управляемое свойство JSF, управляемый компонент JSF, область @SessionScoped, область запросов, область приложений, управляемый компонент JSF inject,

Автор оригинала: Pankaj Kumar.

JSF ManagedBean-это класс java, к которому можно получить доступ на странице JSF для получения значений полей пользовательского интерфейса.

JSF управлял bean

Управляемый компонент JSF может быть создан с помощью @ManagedBean аннотации. Если атрибут name не указан после аннотации @ManagedBean , это указывает на то, что имя управляемого компонента совпадает с именем класса. Если указано имя, то это управляемый компонент с именем, указанным в атрибуте.

Существуют и другие аннотации, определяющие атрибуты области, которые можно использовать с управляемым компонентом.

@SessionScoped : Указывает, что компонент действителен в течение всего сеанса

@RequestScoped : Компонент допустим для http-запроса.

@ApplicationScoped : Компонент действителен до тех пор, пока действует веб-приложение.

Давайте теперь создадим управляемый компонент с именем Car.java как показано ниже.

package com.journaldev.jsf.beans;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;

@ManagedBean
@SessionScoped
public class Car {

	private String cname = "Santro";
	private String color = "blue";
	private String Id = "S1";
	private String model = "S-800";
	private String regno = "S4567";

	private String description;

	public String getColor() {
		return color;
	}

	public void setColor(String color) {
		this.color = color;
	}

	public String getCname() {

		return cname;
	}

	public void setCname(String cname) {
		this.cname = cname;
	}

	public String getDescription() {
		return description;
	}

	public void setDescription(String description) {
		this.description = description;
	}

	public String getRegno() {
		return regno;
	}

	public void setRegno(String regno) {
		this.regno = regno;
	}

	public String getModel() {
		return model;
	}

	public void setModel(String model) {
		this.model = model;
	}

	public String getId() {
		return Id;
	}

	public void setId(String Id) {
		this.Id = Id;
	}

}

В приведенном выше коде, поскольку мы не использовали атрибут имени после @ManagedBean аннотации, создается управляемый компонент с именем Car. @sessionScope используется для указания того, что компонент действителен в течение всего сеанса. Автомобиль был в основном содержит поля автомобиля, такие как цвет, идентификатор, описание, модель и regno, а также методы получения и настройки для них.

Теперь создайте просмотр сведений.xhtml , который представляет собой представление для деталей автомобиля.






	Car Details


       Car Id:#{car.id}
       

Car Name:#{car.cname}

Car color:#{car.color}

Car Model:#{car.model}

Car Registration Number:#{car.regno}

Теперь запустите приложение, и оно должно выдать в браузере следующий вывод.

Введение управляемого компонента JSF

Аннотация @ManagedProperty позволяет нам внедрить управляемый компонент в другой управляемый компонент. Давайте рассмотрим пример того, как внедрить управляемый компонент.

Создайте управляемый компонент с именем Car_gen.java как показано ниже.

package com.journaldev.jsf.beans;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.bean.RequestScoped;

@ManagedBean(name = "car_gen", eager = true)
@RequestScoped
public class Car_gen {

	@ManagedProperty(value = "#{alto_car}")
	private Alto alto;

	private String description;

	public Car_gen() {
	}

	public String getDescription() {
		description = alto.getDescription();
		return description;
	}

	public void setDescription(String description) {
		this.description = description;
	}

	public Alto getAlto() {
		return alto;
	}

	public void setAlto(Alto alto) {
		this.alto = alto;
	}

}

Здесь компонент с именем alto_car вводится с аннотацией @ManagedProperty . В методе getter мы вызываем метод getDescription alto для извлечения значения из управляемого компонента alto.

#{alto_car} указывает, что управляемый компонент с именем alto_car вводится, как мы указали в атрибуте name @ManagedBean аннотации в Alto.java класс.

“указывает, что управляемый компонент создается до того, как он будет запрошен в первый раз.

Затем создайте компонент с именем Alto.java как показано ниже.

package com.journaldev.jsf.beans;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;

@ManagedBean(name = "alto_car", eager = true)
@RequestScoped
public class Alto {

	private String description = "Alto has power windows";

	public String getDescription() {
		return description;
	}

	public void setDescription(String description) {
		this.description = description;
	}

}

Этот управляемый компонент содержит поле описания с инициализированным значением и имеет методы получения и установки.

Теперь мы создаем страницу JSF с именем car_gen.xhtml , чтобы связать это.





      
        Alto Description
    
    
        #{car_gen.description}
    

Мы извлекаем значение описания из компонента car_green , который далее извлекает значение из компонента alto. Это возможно, потому что компонент Alto вводится в общий car_green компонент.

После запуска кода мы можем увидеть страницу JSF, отображающую описание автомобиля alto в браузере.

Окончательная структура проекта показана ниже.

Вы можете скачать проект по ссылке ниже и поиграть с ним, чтобы узнать больше.