com*_*e N 6 dictionary selectonemenu jsf-2
在JSF的标签中,如果你用它来提供它 Map<Key, Value>
<h:selectOneMenu value="#{bean.integerProperty}">
<f:selectItems value="#{bean.mapProperty}"/>
</h:selectOneMenu>
Run Code Online (Sandbox Code Playgroud)
生成的HTML将与人们期望的相反
<select>
<option selected="selected" value="MapValue1">MapKey1</option>
<option value="MapValue2">MapKey2</option>
<option value="MapValue3">MapKey3</option>
</select>
Run Code Online (Sandbox Code Playgroud)
在某种意义上,地图的值将在选项的值属性中设置,并且键将在其标签中设置.
我找到了这个JIRA JIRA 1808,其中解释了必须编写错误地图的含义(主要是唯一性),但不太明白为什么要纠正这个问题.
'破坏性和向后不兼容'.
这是来自以前版本的JSF吗?如果是这样,是否有人知道它是否有这样的理由?
只是好奇是否有解释不解决这个问题.
Bal*_*usC 11
最初的推理毕竟相当简单:下拉标签的优先级高于下拉值.两个相同标签的下拉列表更像是"wtf?" 对于最终用户而不是具有两个相同值的下拉列表.地图键确保唯一性.我确实曾在你自己联系的问题报告中报告了技术不直观.但是,这是一个WONTFIX.如果它在JSF 2.2中被更改,它将不再向后兼容JSF 2.0/2.1.
如果您的环境支持EL 2.2(Tomcat 7,Glassfish 3等),您可以轻松地交换它,如下所示:
<h:selectOneMenu value="#{bean.integerProperty}">
<f:selectItems value="#{bean.mapProperty.entrySet()}" var="entry"
itemValue="#{entry.key}" itemLabel="#{entry.value}" />
</h:selectOneMenu>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8927 次 |
| 最近记录: |