JSF Ext enthält eine Reihe von EL-Funktionen, die das Implementieren von XHTML-Seiten erleichtern.
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.
<h:outputText id="result" value="#{e:enumString(test.testEnum)}"/>
<f:selectItems value="#{e:enumSelectItems('com.intersult.test.model.TestEnum')}"/>