我正在制作一个有各种元素的客户资料页面。 h:selectOneMenu
,h:selectOneRadio
,h:selectBooleanCheckbox
,h:selectManyCheckbox
使用List<MasterDTO>
使用数据库中的主值填充。页面处于编辑模式时,元素显示完美。但是,当页面更改为查看模式时,将显示所选项目值,而不是显示所选项目标签。例如。需要在查看模式中将Single
显示为Marital Status
,而是显示001
。
请参阅下面的示例代码。我不希望在所有代码中将List
对象更改为Map<K,V>
之类的内容。我正在使用JSF 2.0和Primefaces 3.4.2。有解决方案吗?
选择一个菜单
<h:selectOneMenu id="marital_status" style="width:178px;"
rendered="#{customerProfileBean.editMode}"
value="#{customerProfileBean.marital_status}">
<f:selectItem itemValue="-1" itemLabel="--- Select ---" />
<f:selectItems value="#{customerProfileBean.maritalStatusList}"
var="mst" itemLabel="#{mst.valueName}" itemValue="#{mst.valueCode}" />
</h:selectOneMenu>
<h:outputText rendered="#{not customerProfileBean.editMode}"
value="#{customerProfileBean.marital_status}" />
选择多个复选框
<h:selectManyCheckbox id="loanTypes" styleClass="selectOptionSpace"
rendered="#{customerProfileBean.editMode}"
value="#{customerProfileBean.loanTypes}">
<f:selectItems value="#{customerProfileBean.creditFacList}"
var="mst" itemLabel="#{mst.valueName}" itemValue="#{mst.valueCode}" />
</h:selectManyCheckbox>
<h:outputText rendered="#{not customerProfileBean.editMode}"
value="#{customerProfileBean.custLoanType}" />
答案 0 :(得分:0)
使用primefaces控件替换jsf
控件。 p:selectOneMenu
和p:selectManyCheckbox
解决了显示值而不是代码的问题。