Если вы только начали читать этот блог, то советую прочитать предидущие уроки. В этом уроке я расскажу как использовать Управляемые бины в JSF страницах. Мы будем использовать приложение Hello World, которое мы разработали в прошлом уроке.
Управляемые бины - Глубокий взгляд
Java бин - это Java класс который предоставляет доступ к своим свойствам и методам JSF страницам. Вы имеете доступ к свойствам (переменным) бина по средствам общепринятого стандарта - get/set методы. К примеру, если у вас есть свойство name, то метод для доступа к этому свойству будет getName() (первая буква переменной в названии метода должна быть заглавной).
Вот пример управляемого бина:
package org.netlink.examples;
import javax.inject.*;
import javax.enterprise.context.SessionScoped;
import java.io.Serializable;
@Named
@SessionScopedpublic class MyBean implements Serializable {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
1. @Named - аннотация, котороя указывает что это CDI (Context & Dependency Injection) бин. Это очень удобно так как не надо объявлять бин в faces-config.xml. Используя аннотацию @Named мы можем получить доступ к бину из JSF страница по средствам EL #{myBean.name}. Также мы могли бы написать @Named(name="myBestBean") и использовать #{myBestBean.name).
2. @SessionScoped - время жизни бина. SessionScoped означает что бин будет жить до окончания сессии. Жизненные циклы мы рассмотрим в последующих уроках.
3. Serializable - CDI бин должен имплементировать итерфейс Serializable.