我有2件物品:
单选按钮
输出文本
我正在尝试做的是:当用户检查单选按钮时->在我的输出文本中获取选中的单选按钮的itemLabel。 (不是itemValue)
我有以下代码在输出文本中显示itemValue:
<h:form>
<p:selectOneRadio layout="pageDirection" id="test" name="testy" value="#{myBean.testValue}">
<p:ajax update="testOutput"/>
<p:selectItems value="#{myBean.getAllTestItems()}" var="selecter" itemLabel="#{selecter.label}" itemValue="#{selecter.val}"/>
</p:selectOneRadio>
<h:outputText id="testOutput" value="#{myBean.testValue}"/>
</h:form>
当我选择单选按钮之一时,我在outputText中得到了itemValue。但是我想在outputText中获取所选项目的itemLabel。
如何获取标签而不是单选按钮的值?
最佳答案
几种方法。
根据#{myBean.getAllTestItems()}
后面的集合来获取它,该集合已经包含带有标签和值的项目。在此处找到与所选值匹配的项目,然后获取标签。
提交#{selecter}
而不是#{selecter.val}
作为单选按钮项值。这样,您可以通过#{myBean.testValue.label}
显示标签。您只需要提供Converter
即可在String
(在HTML和HTTP请求参数中)和Selecter
(在Java模型中)之间进行转换。
也可以看看:
Our selectOneMenu
wiki page
How to create Primefaces radioButtons from List?(对于您要使用Selecter
作为值的情况)