我想在 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/