我正在尝试以selectManyMenu
高级模式实现primefaces,如展示中所示,但无法使其工作。
它非常适合selectOneMenu
。
这是我的 selectOneMenu 代码:
<p:selectOneMenu id="param" value="#{containerResultBean.selectedParam}"
converter="omnifaces.SelectItemsConverter" var="pa"
filter="true" filterMatchMode="contains" >
<f:selectItem itemLabel="Select questions" itemValue="" />
<f:selectItems value="#{containerResultBean.paramList}"
var="parameter" itemLabel="#{parameter.name}"
itemValue="#{parameter}"/>
<p:column >
<h:outputText styleClass="mediumFont" value="#{pa.name}"/>
<h:outputText styleClass="mediumFont" value="#{pa.category.name}"/>
</p:column>
</p:selectOneMenu>
对于 selectManyMenu
<p:selectManyMenu id="param" value="#{containerResultBean.selectedParamsList}"
converter="omnifaces.SelectItemsConverter" var="pa"
filter="true" filterMatchMode="contains" >
<f:selectItem itemLabel="Select questions" itemValue="" />
<f:selectItems value="#{containerResultBean.paramList}"
var="parameter" itemLabel="#{parameter.name}"
itemValue="#{parameter}"/>
<p:column >
<h:outputText styleClass="mediumFont" value="#{pa.name}"/>
<h:outputText styleClass="mediumFont" value="#{pa.category.name}"/>
</p:column>
</p:selectManyMenu>
我收到一个错误value="#{pa.name}": The class 'java.lang.String' does not have the property 'name'.
我已经加倍检查,我的equal()
,hashcode()
和toString()
方法。我认为如果这些方法有问题,那么selectOneMenu
也不应该奏效。
请注意,当我删除var='pa'
and时<column ...>
,它可以完美运行。