[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')}"/>
}}}