<%@ 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.
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.
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
.
<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.