【问题标题】:How to employ internationalization for JSF bean properties?如何为 JSF bean 属性使用国际化?
【发布时间】:2014-01-04 14:59:48
【问题描述】:

我想在下面的占位符中显示一条国际化消息。我遇到的所有示例都使用 faces-config 中定义的消息包并简单地使用该包名称。但这只有在我们知道使用什么消息密钥时才有效。这不是这里的情况。

考虑这个基本示例:

<h:dataTable border="1" value="#{indexBean.webAdminCatalogList}" var="menuItem">
    <h:column>#{message key here}</h:column>
</h:dataTable>

上面的代码循环遍历一个列表。每个menuItem 变量都包含一个titleMessageCode,它对应于捆绑属性文件中的一个字段。您如何使用menuItem.titleMessageCode 获取消息?有没有专门的JSF标签或者在构建bean的时候准备了这样的国际化标签?

【问题讨论】:

    标签: jsf internationalization


    【解决方案1】:

    您可以使用大括号符号#{map[dynamicKey]} 将动态变量用作映射键。给定一个包名称text,下面是一个示例:

    <h:dataTable border="1" value="#{indexBean.webAdminCatalogList}" var="menuItem">
        <h:column>#{text[menuItem.titleMessageCode]}</h:column>
    </h:dataTable>
    

    请注意,这不是特定于 JSF,而是特定于 EL。那些#{} 不是 JSF 的一部分,它们是 EL(表达式语言)的一部分。 JSF 恰好利用了它。另见our EL wiki page

    【讨论】:

      猜你喜欢
      • 2012-05-13
      • 1970-01-01
      • 2013-01-06
      • 2011-11-14
      • 2011-06-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-17
      相关资源
      最近更新 更多