понедельник, 16 января 2012 г.

Jsf 2.0 + NeatBeans 7.1 + Tomcat 7.0. Продолжение(Простые формы)

Сечас мы создадим простую форму на нашей страничке:


Для начала внесём одно мелкое изменений в web.xml
Он находится в папке WEBINF.
Данное изменение говорит о том, что Faces Servlet`ами будут считаться
все файлы в формате .xhtml + не будет необходимости писать
url вида "/faces/index.xhtml", можно будет обойтись "/index.xhtml".
Внесём изменения в наш первоначальный файл index.xhtml:

Разберёмся, что к чему, рассмотрим новые теги:
- "<h:form>" - аналог обычной формы(<form>) в html;
- "<h:outputText>" : выводит на экран сообщение определённое параметром "value";
- "<h:inputText>" : аналог инпута(<input>) в  html;
- "<h:inputSecret>": аналог <input type="password">;
- "<h:commandButton>": аналог <input type="submit">;
Остальные теги jsf можно посмотреть тут или тут.
Теперь разберём значения установленные в тегах:
значения id и styleClass понадобятся нам в дальнейшем для использования css.
итак что же означает следующая строка:
 "<h:outputText styleClass="outputField" value="Username"/>
  <h:inputText styleClass="inputField" id="username" value="#{mybean.userName}"/>"
Это означает, что поле наше Username будет передавать своё значение
 в управляющий бин "mybean", в котором имеется переменная userName.
Следующее:
"<h:outputText styleClass="outputField" value="Password"/>
 <h:inputSecret styleClass="inputField" id="userpass" value="#{mybean.userPass}"/>
 <h:commandButton styleClass="btn" value="Login!" action="#{mybean.login}"/>"
Поле Password передаёт пароль value="#{mybean.userPass}"  также в 
управляющий бин "mybean", в котором имеется переменная userPass.
Для кнопки Login установлено действие action="#{mybean.login}",
это обращение в управляющий бин "mybean", к методу login();.

Теперь перейдём к созданию ManagedBean для нашей странички:
- Ctrl+N -> JavaServer Faces -> Управляемый компонент JSF
- Имя класса "MyBean"
- Пакет "com.mycompany.app1"
- Добавить данный в файл настройки
- Контекст пока оставим "request".
- Нажимаем "готово"
Теперь допишем наш бин:
Вроде всё просто, в методе login(), в зависимости от возвращаемого значения
будет определено - переходить на другую страницу или нет
Добавим правила перехода в faces-config.xml:
Если мы получим от метода login() значение "accept",то переходим на страницу forum.xhtml;
если в ответ придёт "denied", то переходим на страницу error.xhtml.
Как видишь, нам необходимо ещё создать 2 jsf странички: erro.xhtml и forum.xhtml.
Создаём их:
error.xhtml
forum.xhtml
В приветственном сообщении выведем имя пользователя.
И напоследок подправим настройки мавена:
- Свойства проекта -> Конфигурация -> добавить
- Идентификатор "Build", + сохранить для повторного использования, ok.
Там же выбираем "Build" -> активизировать.
Всё там же, в свойствах:
- Действия -> Конфигурация -> "Build"
- выбираем из списка "Проект профиля" -> построить с зависимостями, ok.
Возле "молоточка" выбираем наш "Build" и нажимаем "молоточек".
Теперь проект быстро соберётся в app1-1.0-SNAPSHOT.war.
Запускаем tomcat (C:\tomcat7\bin\startup.bat)
(Создай ярлык на рабочем столе так быстрее, кстати C:\tomcat7\bin\shutdown.bat также понадобиться, ясно для чего=))
 Берём наш app1-1.0-SNAPSHOT.war, кидаем его в C:\tomcat7\webapps
Приложение деплоиться на сервер,
открываем  http://localhost:8080/app1-1.0-SNAPSHOT/index.xhtml и видим результат.

P.S.: ссылка на следующий  пример

Комментариев нет:

Отправить комментарий