在JSF应用程序中使用Locale Variants用于不同的环境

时间:2016-07-07 22:42:24

标签: java jsf locale

我们有一个JSF应用程序,它为4个不同的商业品牌部署了4个不同的版本。目前,我们为每个品牌提供单独的代码库,我们会在更改时将更改从一个主品牌的代码库复制并粘贴到其他品牌的代码库。

我试图为所有服务的品牌提供一个代码库。

我们在资源属性文件中有应用程序中使用的文本,XHTML模板中的所有标签和文本都来自该文件。

我的计划是为每个品牌设置一个单独的属性文件,并使用Locale变体代码在它们之间切换。所有四个品牌都是en_AU之后的变种,即:

  • en_AU_brandA
  • en_AU_brandB
  • en_AU_brandC
  • en_AU_brandD

这是我做我想做的事情的合适方式吗?还可以在运行时从Java代码中选择XHTML模板使用哪个变体?我计划使用case switch语句,根据服务器名称确定要使用的变体。

1 个答案:

答案 0 :(得分:2)

您可以像这样以编程方式设置它:

FacesContext.getCurrentInstance().getViewRoot().setLocale(locale);

通过xhtml中的bean设置它:

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

描述了其他方式here

在Locale中使用变体可以是切换不同公司的好方法。否则你也必须以编程方式做到这一点。但如果没有其他原因,我不会推荐它。