JSF:将实际语言环境参数传递给resourceBundle调用,而不是默认的null

JSF:将实际语言环境参数传递给resourceBundle调用,而不是默认的null,jsf,parameters,locale,resourcebundle,Jsf,Parameters,Locale,Resourcebundle,UI上有退出非平凡菜单。 其项在循环中的命名方式如下: 循环启动 <li> <h:commandLink action="#{menuItem.getGlobalTransitionName()}">#{resourceBundle.getMessage(menuItem.id,null,menuItem.id,null)} </h:commandLink> </li> 我所尝试的: 1。这将调用解析错误: #{resourceBundle.ge

UI上有退出非平凡菜单。 其项在循环中的命名方式如下:

循环启动

<li>
<h:commandLink action="#{menuItem.getGlobalTransitionName()}">#{resourceBundle.getMessage(menuItem.id,null,menuItem.id,null)}
</h:commandLink>
</li>
我所尝试的:

1。这将调用解析错误:

#{resourceBundle.getMessage(menuItem.id,null,menuItem.id,${externalContext.locale})}
2.这也会引发错误:

#{resourceBundle.getMessage(menuItem.id,null,menuItem.id,#{resourceBundle.locale})}

我怎样才能传递真正使用过的语言环境呢?

嵌套EL表达式确实是无效的。不要那样做。另外,
ExternalContext
没有
getLocale()
方法。您想改用
{facesContext.viewRoot.locale}

#{resourceBundle.getMessage(menuItem.id,null,menuItem.id,facesContext.viewRoot.locale)}

嵌套EL表达式确实是无效的。不要那样做。另外,
ExternalContext
没有
getLocale()
方法。您想改用
{facesContext.viewRoot.locale}

#{resourceBundle.getMessage(menuItem.id,null,menuItem.id,facesContext.viewRoot.locale)}

我在我们的应用程序中使用了${externalContext.locale},它运行良好,然后是特定于实现的。标准API至少肯定没有。只有一个
getRequestLocale()
方法。另请参见,我在应用程序中使用了${externalContext.locale},它运行良好,然后是特定于实现的。标准API至少肯定没有。只有一个
getRequestLocale()
方法。另见