Если вы только начали читать этот блог, то советую прочитать предидущие примеры jsf. В этом уроке я расскажу как использовать Управляемые бины в 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
@SessionScoped
public 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.
Теперь мы можем получить доступ к бину из JSF страницы. Пример:
1. home.xhtml
Note: любая вводимая пользователем информация должна заключаться в тэг <h:form>.
2. welcome.xhtml
3. Последнее что нужно сделать это добавить файл beans.xml в дерикторию WEB-INF:
Теперь поместите приложение на сервер и запустите его >>> localhost:8080/helloworld
Вопросы пишите в комментариях. В будущем вы сможете найти всевозможные примеры jsf на этом блоге.
Best regards,
Netlink community member
2. @SessionScoped - время жизни бина. SessionScoped означает что бин будет жить до окончания сессии. Жизненные циклы мы рассмотрим в последующих уроках.
3. Serializable - CDI бин должен имплементировать итерфейс Serializable.
Теперь мы можем получить доступ к бину из JSF страницы. Пример:
1. home.xhtml
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html">
<h:head>
</h:head>
<h:body>
<h:form>
Enter your name: <br />
<h:inputText value="#{myBean.name}" /><br />
<h:commandButton action="welcome" value="Welcome!"></h:commandButton>
</h:form>
</h:body>
</ui:composition>
Note: любая вводимая пользователем информация должна заключаться в тэг <h:form>.
2. welcome.xhtml
<ui:composition xmlns="http://www.w3.org/1999/xhtml" xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:f="http://java.sun.com/jsf/core" xmlns:h="http://java.sun.com/jsf/html">
<h:outputText value="Welcome #{myBean.name} !" />
</ui:composition>
3. Последнее что нужно сделать это добавить файл beans.xml в дерикторию WEB-INF:
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:s="urn:java:ee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://docs.jboss.org/cdi/beans_1_0.xsd"></beans>
Теперь поместите приложение на сервер и запустите его >>> localhost:8080/helloworld
Вопросы пишите в комментариях. В будущем вы сможете найти всевозможные примеры jsf на этом блоге.
Best regards,
Netlink community member
Комментариев нет:
Отправить комментарий