我在我的一个应用程序中遇到了一点国际化问题。故事是这样的:
我有一个显示记录的数据表和一个 selectOneMenu,以便选择要过滤的数据表的一列。selectOne 由 SelectItem 提供,这些 SelectItem 根据 DataRefresh 时间后备 bean 中的实际区域设置填充。
现在,当用户更改语言环境时,selectOne 的内容将保留在旧语言环境中,直到重新呈现页面。这是非常合乎逻辑和预期的。
我当然希望改变。
所以我尝试编写一个自己的 selectOne,它使用包含对 languageFile 条目的引用的 selectItems,以便能够在不重新渲染的情况下更改它们。
这是我尝试过的
<select id="j_id5:filterSelector" name="j_id5:filterSelector" size="1">
<c:forEach var="item" items="#{gridBean.filterFields}">
<option value="#{item.Value}">#{msg[item.Label]}</option>
</c:forEach>
</select>
遗憾的是,JSF 告诉我该项目没有 Label 或 Value 属性,我几乎不相信。;)
有谁知道如何以这种方式访问这个属性?