Читать «Java 7 (Наиболее полное руководство)» онлайн - страница 449
Ильдар Шаукатович Хабибуллин
Главная особенность библиотеки html заключается в том, что ее составляют не просто теги, а целые компоненты. Компоненты JSF реагируют на события мыши и клавиатуры, которые могут быть обработаны обычными средствами JavaScript или специальными средствами JSF. Для этого введены теги-обработчики событий. Один такой тег, <v:valueChangeListener>, показан в листинге 27.12. Надо сказать, что разработчики тегов библиотеки html сознательно ориентировались на компоненты Swing, стараясь, по мере возможности, наделить теги такими же свойствами. В частности, компоненты JSF можно размещать на форме, пользуясь подходящим IDE. Это "умеет" делать, например, Java Studio Creator.
Форма, записанная в листинге 27.12, посылает на сервер имя и пароль, связанные с полями cashier.name и cashier.pswd атрибутом value. Что это за поля и какому объекту cashier они принадлежат?
Данные, полученные от HTML-формы, будут храниться в объекте, класс которого должен написать разработчик Web-приложения. Этот класс оформляется как JavaBean, чтобы JSF мог заполнять и читать его поля методами доступа. Он будет частью
Листинг 27.13. Класс с данными HTML-формы j
package myjsf;
import javax.faces.bean.*;
@ManagedBean(name="cashier")
@RequestScoped public class Cashier{
private String name; private String pswd;
public String getName(){ return name; }
public void setName(String name){ this.name = name; }
public String getPswd(){ return pswd; }
public void setPswd(String pswd){ this.pswd = pswd; }
public String submit(){
if ("Cashier".equalsIgnoreCase(name) && "rT34?x D".equals(pswd))
return "success"; else
return "failure";
}
}
Как видите, в этом же классе записан метод обработки щелчка по кнопке Отправить.
Теперь надо каким-то образом указать JSF этот класс. Сведения о нем записываются в аннотациях или в конфигурационном XML-файле faces-config.xml, который должен храниться в каталоге WEB-INF вместе с файлом web.xml. Этот файл для нашего примера записан в листинге 27.14.
Листинг 27.14. Конфигурационный файл JSF
<?xml version='1.0' encoding='UTF-8'?>
<faces-config xmlns=" avaee"
xmlns:xsi="" xsi:schemaLocation=" 1 2.xsd" version="1.2">
<managed-bean>
<description>
Класс-обработчик регистрации кассира
</description>
<managed-bean-name>cashier</managed-bean-name>
<managed-bean-class>myjsf.Cashier</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>
<navigation-rule>
<from-view-id>/index.j sp</from-view-id>
<navigation-case>
<description>
После удачной проверки переход на страницу welcome.jsp