JSF Ext enthält eine Reihe von EL-Funktionen, die das Implementieren von XHTML-Seiten erleichtern.
Select Items#
Das Thema Select Items ist rund um <h:selectOneMenu> (Drop-Down), <p:selectOneButtons> und andere Select-Elemente aus dem H-Namespace, Primefaces und Richfaces interessant.Grundlage ist das Nutzen von messages.properties, die in der faces-config.xml festgelegt werden:
<?xml version="1.0" encoding="UTF-8"?> <faces-config version="2.2" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-facesconfig_2_2.xsd" > <application> <resource-bundle> <base-name>messages</base-name> <var>messages</var> </resource-bundle> <message-bundle>messages</message-bundle> ... </application> </faces-config>
Folgende Enum-Klasse liegt vor:
public enum TestEnum { ONE, TWO, THREE, FOUR, FIVE }
In den Messages, also messages.properties, messages_en.properties für Englisch, messages_de.properties für Deutsch etc. werden dann die Texte für die Enums hinterlegt:
com.intersult.test.model.TestEnum.ONE=One com.intersult.test.model.TestEnum.ONE.description=Description One com.intersult.test.model.TestEnum.TWO=Two com.intersult.test.model.TestEnum.TWO.description=Description Two
Hinweis: Die Einträge mit der zusätzlichen Endung ".description" sind optional und werden in die Description-Properties der SelectItem-Klasse von JSF hinzugefügt.
Enum String#
Liegt ein Property einer Modellklasse vor, dessen Wert als Klartext ausgegeben soll, kann die EL-Function enumString verwendet werden:<h:outputText id="result" value="#{e:enumString(test.testEnum)}"/>
Enum Select Items#
Für ein Enum können bequem Select Items erzeugt werden:<f:selectItems value="#{e:enumSelectItems('com.intersult.test.model.TestEnum')}"/>