Tworzenie formularza

Wszystkie strony do oglądania będziemy tworzyć jako strony JSP, acz w przeglądarce i w linkach bezpośrednich będą występowały jako strony .faces. Formularze łatwo konstruować przy pomocy komponentów ze standartdowych bibliotek tag'ów. Najpierw tagi musimy zadeklarować (plik form.jsp):

<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
Teraz w tagu f:view możemy budować kod stronki.
Do formularza możemy użyć znacznika h:form a w nim do pól tekstowych i przycisku wysyłającego odpowiednio znaczników h:inputText i h:commandButton. Generalnie większość komponentów HTML ma swoje odpowiedniki w znacznikach z podstawowych bibliotek. Używając znaczników oszczędzamy sobie pracy oraz umożliwiamy zarządzanie naszą aplikacją. Nasz formularz może wyglądać następująco:

<h:form>
  Email address: 
  <h:inputText value="#{registrationBean.email}"/><BR>
  Password: 
  <h:inputSecret value="#{registrationBean.password}"/><BR>
  <h:commandButton value="Sign Me Up!" 
                   action="#{registrationBean.register}"/>
</h:form>
Jako atrybuty value pól tekstowych wskazujemy atrybuty naszego bean'a odwołując się w pokazany, prosty sposób. Ma to dwojakie znaczenie: pokazujemy gdzie chcemy przechowywać wpisywaną wartość oraz jeżeli na tej danej jest już jakaś wartość (np domyślna jak w naszym przypadku) to pole zostanie wypełnione.
Z przyciskiem natomiast związana jest akcja. Akcje będą odpowiadać za przekierowywanie na kolejne strony JSP. Kod action="#{registrationBean.register} oznacza że po wciśnięciu przycisku zostanie wywołana metoda public String register() bean'a odpowiadającego nazwie registrationBean. Powoduje to też ustawienie odpowiednich danych na zarządzanym bean'ie zgodnie z wypełnieniem formularza.

Dodatkowo istnieje możliwość korzystania z tekstów zapisanych w plikach (ułatwia to ewentualne poprawki językowe - nie ma konieczności bespośredniej edycji kodu strony oraz umożliwia tworzenie stron wielojęzycznych). W celu skorzystania z tej dogodności musimy zadeklarować taki plik

<f:loadBundle basename="messages_pl" var="msgs"/>
Plik musi mieć rozszerzenie .properties i być postaci etykieta=tekst.
Teraz już możemy się odwoływać do etykiet jak na przykładzie

<h:outputText value="#{msgs.zwykly}"/>
<h:outputFormat value="#{msgs.zlozony}">
  <f:param value="#{msgs.jeden}"/>
  <f:param value="#{msgs.dwa}"/>
</h:outputFormat>
Jak widać w przypadku powtarzających się tekstów można korzystać z etykiet parametryzowanych.
Wpis o pliku zewnętrznym musi być powtarzany na każdej stronie JSP na której się z niego korzysta!