我有一点国际化问题在我的应用程序之一挣扎。 故事是这样的:

我有一个数据表,其显示记录,并且一个selectOneMenu用于为了 选择数据表的一列被过滤为。该selectOne是 被馈入一个SelectItems其根据在所述实际区域设置填充 在DataRefresh时间支持bean。

现在,当用户更改区域的selectOne留在内容 旧的语言环境,直到页面被重新呈现。这是很合乎逻辑的和预期的。

当然我想要改变。

于是,我试着写一个自己的selectOne它使用含有selectItems的 为了languageFile条目的引用,以便能够改变他们不 重新描绘。

下面是我的尝试

<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告诉我的项目不具有标签或值的属性,该属性 我几乎不敢相信。 ;)

有没有人的得到一个想法如何使用这种方法访问thise属性?

有帮助吗?

解决方案 2

我解决了存储filterfields两次的问题。一旦为每种语言 - 运行decission被渲染。不是一个很好的一个,但它的作品。 Could'nt得到的ChangeListener去......

其他提示

在我看来,你应该写:

#{item.value}

代替#{item.Value},作为标准的JavaBeans约定是具有getXyz()吸气剂为xyz属性。

另外,你为什么不提供一个valueChangeListener为区域选择的UI组件,然后,它里面填充选择项目标签为语言环境。这样,你可以使用标准的f:selectItems标签。

您也可以把它使你的命令链接重新渲染页面,使其自动完成你需要它的。不知道这是否符合您的要求或没有。 :)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top