我已经渲染了复选框,并且我已经渲染了选中的复选框值,如下所示:
<h:selectManyCheckbox id="chkedition" value="#{adcreateBean.selectedEditions}" layout="lineDirection" styleClass="nostyle">
<f:selectItems value="#{adcreateBean.editions}" var="item" itemLabel="#{item.editionName}" itemValue="#{item.editionID}"/>
<p:ajax update="dt1" />
</h:selectManyCheckbox>
<h:dataTable id="dt1" value="#{adcreateBean.selectedEditions}" var="it" styleClass="nostyle" width="100%">
<f:facet name="header">
<h:outputText value="You have selected :" />
</f:facet>
<h:column>
<h:outputText value="#{it}" />
</h:column>
</h:dataTable>
我的问题是,它显示所选值的ID。但是我想要选择值的名称(标签)。那我该怎么办?
答案 0 :(得分:0)
您的itemValue
确实只传递了版本ID。您需要传递版本名称。
<f:selectItems value="#{bean.editions}" var="edition"
itemLabel="#{edition.name}" itemValue="#{edition.name}"/>
或者,只需传递整个Edition
对象。
<f:selectItems value="#{bean.editions}" var="edition"
itemLabel="#{edition.name}" itemValue="#{edition}"/>
您只需要创建一个自定义Converter
,可在Edition
和String
之间进行转换。