java - Map as backing property for rich:pickList -
i want use map<string, list<object>> backing property rich:picklist follows:
<ui:repeat value="#{bean.selectedmap.entryset" var="entry"} > <rich:picklist value="#{entry.value}" var="list" > <f:selectitems value="#{bean.getall}" /> <f:converter converterid="mybeanconverter" /> </rich:picklist> </ui:repeat> backing bean:
public class mybean { private map<string, list<string>> mylist; ... getters/setters mylist } the problem i'm still getting exception:
15:19:16,583 severe [info.fingo.salutor.exception.customexceptionhandler] (http--127.0.0.1-8080-4) critical exception!: javax.faces.facesexception: modeltype (class java.lang.object) must either array, or collection @ com.sun.faces.lifecycle.processvalidationsphase.execute(processvalidationsphase.java:84) [jsf-impl-2.1.7-jbossorg-2.jar:] @ com.sun.faces.lifecycle.phase.dophase(phase.java:101) [jsf-impl-2.1.7-jbossorg-2.jar:] @ com.sun.faces.lifecycle.lifecycleimpl.execute(lifecycleimpl.java:118) [jsf-impl-2.1.7-jbossorg-2.jar:] @ javax.faces.webapp.facesservlet.service(facesservlet.java:593) [jboss-jsf-api_2.1_spec-2.0.1.final.jar:2.0.1.final] @ org.apache.catalina.core.applicationfilterchain.internaldofilter(applicationfilterchain.java:329) [jbossweb-7.0.13.final.jar:] @ org.apache.catalina.core.applicationfilterchain.dofilter(applicationfilterchain.java:248) [jbossweb-7.0.13.final.jar:] caused by: javax.faces.facesexception: modeltype (class java.lang.object) must either array, or collection @ org.richfaces.renderkit.selectmanyhelper.getconvertedvalue(selectmanyhelper.java:332) [richfaces-components-ui-4.2.2.final.jar:4.2.2.final] @ org.richfaces.renderkit.selectmanyrendererbase.getconvertedvalue(selectmanyrendererbase.java:108) [richfaces-components-ui-4.2.2.final.jar:4.2.2.final] @ javax.faces.component.uiinput.getconvertedvalue(uiinput.java:1030) [jboss-jsf-api_2.1_spec-2.0.1.final.jar:2.0.1.final] @ javax.faces.component.uiinput.validate(uiinput.java:960) [jboss-jsf-api_2.1_spec-2.0.1.final.jar:2.0.1.final] @ javax.faces.component.uiinput.executevalidate(uiinput.java:1233) [jboss-jsf-api_2.1_spec-2.0.1.final.jar:2.0.1.final] @ javax.faces.component.uiinput.processvalidators(uiinput.java:698) [jboss-jsf-api_2.1_spec-2.0.1.final.jar:2.0.1.final] @ com.sun.faces.facelets.component.uirepeat.process(uirepeat.java:532) [jsf-impl-2.1.7-jbossorg-2.jar:] @ com.sun.faces.facelets.component.uirepeat.processvalidators(uirepeat.java:766) [jsf-impl-2.1.7-jbossorg-2.jar:] @ javax.faces.component.uicomponentbase.processvalidators(uicomponentbase.java:1214) [jboss-jsf-api_2.1_spec-2.0.1.final.jar:2.0.1.final] @ javax.faces.component.uiform.processvalidators(uiform.java:253) [jboss-jsf-api_2.1_spec-2.0.1.final.jar:2.0.1.final] @ javax.faces.component.uicomponentbase.processvalidators(uicomponentbase.java:1214) [jboss-jsf-api_2.1_spec-2.0.1.final.jar:2.0.1.final] @ javax.faces.component.uiviewroot.processvalidators(uiviewroot.java:1172) [jboss-jsf-api_2.1_spec-2.0.1.final.jar:2.0.1.final] @ com.sun.faces.lifecycle.processvalidationsphase.execute(processvalidationsphase.java:76) [jsf-impl-2.1.7-jbossorg-2.jar:] ... 39 more anyone knows going about?
if close our eyes on failure close el expression (}), problem there indeed no getentryset method defined on map instance. so, assuming environment supports el 2.2, put function call, () @ end of el expression, tell el method call.
next, <ui:repeat> doesn't support iterating on set, either create helper getter returns list, or create custom el function, or use set#toarray() method.
for example, latter like: #{bean.selectedmap.entryset().toarray()}. alternatives, @ answers on topic questions asked, , answered, on stack overflow.
Comments
Post a Comment