2.3 Подключение базового компонента
В предыдущем разделе мы создали простое веб-приложение с элементами JSF. Однако веб-приложение пока что не делает ничего интересного. Для добавления к веб-приложениям JSF расширенных функциональных возможностей можно связать элементы UI с базовыми компонентами. Базовый компонент, также называемый управляемым компонентом JSF, является стандартным элементом JavaBeans, свойства и методы компонента которого доступны элементам JSF.
В этом разделе описано создание управляемого компонента UserBean, предоставляющего два свойства компонента: name и birthday.
В окне "Projects" щелкните правой кнопкой мыши узел проекта и выберите "New > File" (Ctrl-N). В категории "Web" выберите "JSF Managed Bean" и нажмите кнопку "Next".
Назовите компонент UserBean и создайте новый пакет с именем astrologer.user для вставки в него компонента. Оставьте для всех остальных параметров значения по умолчанию и нажмите кнопку "Finish".
Среда IDE открывает UserBean.java в редакторе исходного кода и добавляет к faces-config.xml следующее объявление компонента:
<managed-bean>
<managed-bean-name>UserBean</managed-bean-name>
<managed-bean-class>astrologer.user.UserBean</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>
Добавьте в файл UserBean.java после строки :
public class UserBean {
следующие объявления полей (выделенные полужирным шрифтом):
String name;
String birthday;
Создайте методы получения и установки для полей: щелкните правой кнопкой мыши в любом месте в файле и выберите "Refactor > Encapsulate Fields". В появившемся диалоговом окне выберите параметры методов получения и установки для name и birthday, а затем нажмите кнопку "Next", Потом “Do Refactor”.
После нажатия кнопки Refactor в нижней части окна, следует нажать кнопку Do refactor.
Уровень доступа для полей изменяется на private; в самом файле создаются методы получения и установки.
Внесите следующие изменения в greeting.jsp:
<f:view>
<h:form>
<p>Enter your name: <h:inputText value="#{UserBean.name}" /></p>
<p>Enter your birthday: <h:inputText value="#{UserBean.birthday}" /></p>
<h:commandButton value="Submit" action="submit" />
</h:form>
</f:view>
Добавьте объявления JSF taglib к success.jsp. Их можно скопировать и вставить из greeting.jsp.
Добавьте пустую форму непосредственно под теги <h2> в редакторе исходного кода, для этого внесите следующие изменения в success.jsp (изменения выделены полужирным шрифтом):
<h2>Congratulations</h2>
<f:view>
<h:form>
<p>Your name is <h:outputText value="#{UserBean.name}" /></p>
<p>Your birthday is <h:outputText value="#{UserBean.birthday}" /></p>
</h:form>
</f:view>
В окне "Projects" щелкните правой кнопкой мыши узел проекта и выберите "Run Project". Та же самая страница greeting.jsp отображается в обозревателе при повторном развертывании и запуске приложения. Теперь при вводе значений и нажатии "Submit" success.jsp выводит на экран введенные значения.
Задание на самостоятельную работу:
Модернизируйте программу так, что бы в случаи указания Вашего имени программа сообщала, что в системе существует пользователь с таким именем.
Содержание отчета:
-
титульный лист;
-
цель работы;
-
задание;
-
исходные тексты;
-
результаты работы;
-
выводы по работе.