...
Il existe des convertisseurs par défaut dansJSF dans JSF (DateTimeConverter et NumberConverter). Ils permettent de transformer une date ou un nombre suivant différentes règles, par exemple :
| Bloc de code |
|---|
<h:outputText value="#{testController.date}">
<f:convertDateTime dateStyle="short" locale="#{sessionController.locale}"/>
</h:outputText>
|
...
| Bloc de code |
|---|
<h:selectOneMenu id="locale" onchange="submit();" value="#{preferencesController.locale}" converter="#{localeConverter}"> <f:selectItems value="#{preferencesController.localeItems}"/> </h:selectOneMenu> |
...
| Bloc de code |
|---|
<bean id="localeConverter"
class="org.esupportail.commons.web.converters.LocaleConverter">
<description>
A converterforLocale objects.
</description>
</bean>
|
...
Un des objectifs de l'utilisation de JSF est, via un standard de haut niveau, de tendre vers plus d'accessibilité (WAI : Web Accessibility Initiative). L'accessibilité des applications doit être une préoccupation constante des programmeurs, qui ne doivent pas hésiter à tester leurs applications en utilisant des navigateurs pauvres , tel tels que Lynx. En règle générale, on évitera absolument d'utiliser les balises h:commandLink qui, à cause de l'utilisation de Javascript, brisent toutes les règles de l'accessibilité. On préfèrera dans tous les cas des boutons (h:commandButton). Javascript peut néanmoins être utilisé pour améliorer l'IHM des applications, en faisant attention à ce que les navigateurs ne parlant pas Javascript puissent quand même utiliser l'application. Nous montrons ici à titre d'exemple comment on peut soumettre un formulaire par simple changement de la valeur d'une boite déroulante :
| Bloc de code |
|---|
<h:form id="form"> <h:messages /> <h:outputLabel for="value" value="#{msgs['TEXT.VALUE']}"/> <h:selectOneMenu id="value" onchange="submit();" value="#{controller.value}"> <f:selectItems value="#{controller.valueItems}"/> </h:selectOneMenu> <h:commandButton value="#{msgs['BUTTON.CHANGE']}" id="changeButton"/> </h:form> <script type="text/javascript"> hideButton("form:changeButton"); </script> |
...