java - JSF 从页面加载的那一刻起就国际化了。

标签 java jsf

我想在 JSF 中实现国际化,网上给出的大多数技术都涉及询问用户他/她的区域设置并在 session bean 中设置值。但我希望根据请求接受语言 header 设置语言环境,并且 JSF 应该有一些过滤器,它在加载第一页之前设置语言环境,然后将其设置在我可以重用的语言 session bean 中.

因此,是否有一些类似于使用 jsf 实现的区域设置过滤器的功能,可用于设置区域设置?

谢谢!

最佳答案

如果您已在 faces-config.xml 中正确配置区域设置并拥有正确的资源包文件,则 Java EE 应用程序应自动检测区域设置。这个tutorial from Netbeans给出了很好的介绍。

此外,Web 应用程序可以根据请求检测客户端的区域设置,如 Java EE tutorial 中的引用所示。 :

To get the correct strings for a given user, a web application either retrieves the locale (set by a browser language preference) from the request using the getLocale method, or allows the user to explicitly select the locale.

还有一个如何使用 getLocale 方法的示例:

FacesContext ctx = FacesContext.getCurrentInstance();
Locale locale = ctx.getViewRoot().getLocale();

您可以将其置于 session 状态以方便访问。

关于java - JSF 从页面加载的那一刻起就国际化了。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5550519/

相关文章:

Java:如何理解神秘的堆栈跟踪?

JSF 标记在 *.xhtml 上无效,但在 *.jsp 文件上有效

java - 清除 JSF 上的输出字段

java - 如何在 JQuery 和 JSF(Myfaces Tomahawk 组件库)之间发送/接收 json 对象

java.lang.NoClassDefFoundError : javax/faces/FacesException 错误

Java如何在每次while循环开始时获取一个随机数?

java - request.getRemoteUser() 有时会返回 null

java - 将字符串转换为 TIMESTAMP,以便从 servlet java 插入数据库 oracle

java - 如何在 Hadoop 中显式指定 map 节点或 reduce 节点

jsf - 为什么复合组件中某个方面内的 commandLink 会呈现错误?