我对 selectOneMenu 和设置值有疑问。我有一个 Object SampleDesc,它有 ID、Text 和List<SampleDescValues>
. 对于每个数据表行,文本是输出标签,选择一个菜单值是List<SampleDescValues>
. XHTML:
<h:panelGroup id="tables">
<p:dataTable resizableColumns="true"
var="sampleDesc" id="SampleDescTable" rowIndexVar="rowIndex"
value="#{sampleBean.sampleDescList.list}"
rendered="#{sampleBean.sampleDescList.list.size() gt 0}">
<p:column>
<h:outputLabel value="#{sampleDesc.sampleDescText}"/>
</p:column>
<p:column>
<h:selectOneMenu required="#{sampleBean.sampleDescList.list.size() gt 0}" converter="#{sampleDescValueConverter}"
id="SampleDescValue" value="#{sampleBean.selectedSampleDescList.get(rowIndex)}">
<f:selectItem itemLabel="Select One" itemValue="#{null}"/>
<f:selectItems value="#{sampleDesc.sampleDescValues}" var="sdv"
itemLabel="#{sdv.sampleDescValuesText}" itemValue="#{sdv}" />
</h:selectOneMenu>
</p:column>
</p:dataTable>
</h:panelGroup>
我有转换器设置并且它可以工作,因为我将它设置为单个 SampleDescValue 并且它设置了值。
问题是当我尝试使用数据库中的示例填充表单时,它只能设置一个下拉菜单,而选择菜单的数量可能是无限的
我将选择的值设置为private List<SampleDescValue> selectedSampleDescList;
当我尝试提交它什么都不做时,它在数据表未呈现时起作用。