JSF:将真实的区域设置参数传递给resourceBundle调用,而不是默认的null



UI上有一个退出非琐碎菜单。它的项目在循环中以这种方式命名:

环路启动

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

回路端

上面执行的对resourceBundle的调用,其中设置了默认区域设置-它被硬编码为null值,因此总是解析为En

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

我尝试过的:

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)}

相关内容

  • 没有找到相关文章

最新更新