Modification de la forme de travail avec un point par commande à plusieurs points par ordre J'ai rencontré des problèmes de pré-remplissage h: selectOneMenu. Exception est java.lang.IllegalArgumentException: Value binding '#{spot.deliveryTypes}'of UISelectItems with component-path {Component-Path : [Class: javax.faces.component.UIViewRoot,ViewId: /order.jsp][Class: javax.faces.component.html.HtmlForm,Id: pf][Class: javax.faces.component.html.HtmlSelectOneMenu,Id: _idJsp11][Class: javax.faces.component.UISelectItems,Id: _idJsp12]} does not reference an Object of type SelectItem, SelectItem[], Collection or Map but of type : null
Comment préremplir la répétition h: selectOneMenu?
ancien code JSP de travail:
<h:selectOneMenu value="#{order.deliveryType}" immediate="true">
<f:selectItems value="#{order.deliveryTypes}" />
</h:selectOneMenu>
nouveau code JSP qui ne travaillent pas:
<c:forEach var="spot" items="${order.spots}">
<h:selectOneMenu value="#{spot.deliveryType}" immediate="true">
<f:selectItems value="#{spot.deliveryTypes}" /> <%-- Works as empty list if this line removed --%>
</h:selectOneMenu> <c:out value="${spot.name}"/><br/>
</c:forEach>
Nouveau champ a été introduit List<Spot> spots
ainsi que getter et setter. List<SelectItem> getDeliveryTypes()
a été déplacé de la classe bean géré Order vers la classe Spot.
Comment accéder à spot.deliveryTypes? Changer # à $ n'a pas aidé car value = n'accepte pas EL.
MyFaces 1.1.8
Merci.