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

发布于 2024-11-10 01:48:37 字数 790 浏览 2 评论 0原文

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

循环开始

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

循环结束

上面执行的对resourceBundle的调用,其中设置了默认区域设置 - 它被硬编码为null值,因此始终解析为<​​code>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})}

我如何在那里传递真正使用的区域设置?

There is quit non-trivial menu on UI.
Its items named in loop this way:

loop start

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

loop end

call to resourceBundle performed above,where default locale is set - it's hardcoded to null value,so resolved to En always:

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

What I've tried:

1. this invokes parsing error:

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

2. this invokes error as well:

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

how can I pass really used locale there?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

当爱已成负担 2024-11-17 01:48:37

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

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

Nesting EL expressions is indeed invalid. Don't do that. Plus, ExternalContext doesn't have a getLocale() method. You want to use #{facesContext.viewRoot.locale} instead.

#{resourceBundle.getMessage(menuItem.id,null,menuItem.id,facesContext.viewRoot.locale)}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文