Jak łatwo się domyślić, jsf_core
udostępnia podstawowe (i niezależne
od sposobu wyświetlania) znaczniki. Są wśród nich np. tagi konwerterów,
walidatorów, listenerów, które można zagnieździć w tagach komponentów,
rejestrując na nich konwertery, walidatory itd.
Proste przykłady zarejestrowania konwertera daty, walidatora liczb (by były z przedziału od-do) i listenera:
<h:inputText id="userNo" value="#{UserNumberBean.userNumber}"> <f:validateLongRange minimum="#{UserNumberBean.minimum}" maximum="#{UserNumberBean.maximum}" /> </h:inputText> <h:outputText value="#{cashier.shipDate}"> <f:convertDateTime dateStyle="full" /> </h:outputText> <h:commandLink id="Germany" action="bookstore" actionListener="#{localeBean.chooseLocaleFromLink}"> <h:outputText value="#{bundle.German}" /> </h:commandLink>
Do ciekawszych tagów należą poza tym:
<f:view> ... inne tagi ... </f:view>
<f:subview id="nestedPage"> <jsp:include page="nestedPage.jsp"> </f:subview>
<h:column > <f:facet name="header"> <h:outputText value="#{bundle.ItemQuantity}" /> </f:facet> <h:inputText id="quantity" size="4" value="#{item.quantity}" > </h:inputText> </h:column>
<f:loadBundle var="bundle" basename="carstore.bundles.Resources"/>by potem użyć zlokalizowanych wiadomości w zagnieżdżonych tagach:
<h:outputText value="#{bundle.Hello}"/>
<h:selectOneMenu id="shippingOption" required="true" value="#{cashier.shippingOption}"> <f:selectItem itemValue="2" itemLabel="#{bundle.QuickShip}"/> <f:selectItem itemValue="5" itemLabel="#{bundle.NormalShip}"/> </h:selectOneMenu> <h:selectManyCheckbox id="newsletters" layout="pageDirection" value="#{cashier.newsletters}"> <f:selectItems value="#{newsletters}"/> </h:selectManyCheckbox>