Details
-
Improvement
-
Status: Closed
-
Major
-
Resolution: Fixed
-
2.3.10, 2.3-next-M7, 3.0.2, 4.0.0-RC4
-
None
-
None
Description
See; https://github.com/jakartaee/faces/issues/1791
The component should render the itemLabel as instructed by the provided EL, even if the backed data type is SelectItem. The default rendering should only be done when the attribute is missing.
Example:
<h:form id="frmTest"> <p:selectOneMenu id="test1"> <f:selectItems value="#{testView.items}" var="i" itemValue="#{i.value}" itemLabel="#{i.value} - #{i.label}" /> </p:selectOneMenu> <p:selectOneMenu id="test2"> <f:selectItems value="#{testView.items2}" var="i" itemValue="#{i.key}" itemLabel="#{i.key} - #{i.value}" /> </p:selectOneMenu> <p:selectOneMenu id="test3"> <f:selectItems value="#{testView.items}" /> </p:selectOneMenu> <p:selectOneMenu id="test4"> <f:selectItems value="#{testView.items2}" /> </p:selectOneMenu> </h:form>
The issue is `id="test1"` the user is expecting it to render `itemLabel="#{i.key} - #{i.value}"` but it is ignored and just the underlying Java SelectItem value is rendered.