JSF 2.0从浏览器和编程设置整个会话的区域设置

如何根据初始浏览器请求检测应用程序的区域设置,并在整个浏览会话中使用它,直到用户明确更改区域设置,以及如何通过剩余会话强制执行此新区域设置?

One Solution collect form web for “JSF 2.0从浏览器和编程设置整个会话的区域设置”

创build一个会话范围的托pipebean,如下所示:

@ManagedBean @SessionScoped public class LocaleManager { private Locale locale; @PostConstruct public void init() { locale = FacesContext.getCurrentInstance().getExternalContext().getRequestLocale(); } public Locale getLocale() { return locale; } public String getLanguage() { return locale.getLanguage(); } public void setLanguage(String language) { locale = new Locale(language); FacesContext.getCurrentInstance().getViewRoot().setLocale(locale); } } 

要设置视图的当前语言环境,请将其绑定到主模板的<f:view>

 <f:view locale="#{localeManager.locale}"> 

要更改它,请使用语言选项将其绑定到<h:selectOneMenu>

 <h:form> <h:selectOneMenu value="#{localeManager.language}" onchange="submit()"> <f:selectItem itemValue="en" itemLabel="English" /> <f:selectItem itemValue="nl" itemLabel="Nederlands" /> <f:selectItem itemValue="es" itemLabel="Español" /> </h:selectOneMenu> </h:form> 

为了改善你的国际化页面的search引擎优化(否则它将被标记为重复的内容),也将语言绑定到<html>

 <html lang="#{localeManager.language}"> 
  • 如何通过ajaxvalidation两个密码字段?
  • 在数据表中Primefaces静态和dynamic列
  • 如何findajax更新/渲染组件的客户端ID? 无法find含有“bar”引用的expression式“foo”的组件
  • 如何将选定的行传递给dataTable或ui中的commandLink:repeat?
  • h:button和h:commandButton之间的区别
  • 如何使commandButton不完全刷新页面? 如何使用f:ajax?
  • Java Server Faces 2.0的主要缺点是什么?
  • 在JSF页面中定义和重用ELvariables
  • 如果JSF页面受j_security_check保护,则不会在Ajax请求上抛出ViewExpiredException
  • 推荐的JSF 2.0 CRUD框架
  • 从外部文件系统或数据库获取Facelets模板/文件