2016-07-07 75 views
1

我们有一个JSF应用程序,它针对4个不同的商业品牌部署在4个不同的版本中。目前,我们为每个品牌提供单独的代码库,并且在进行更改时,我们会将一个主品牌代码库中的更改复制并粘贴到其他品牌代码库。在适用于不同环境的JSF应用程序中使用语言环境变体

我正在尝试为所服务的所有品牌提供一个单一的代码库。

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

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

  • en_AU_brandA
  • en_AU_brandB
  • en_AU_brandC
  • en_AU_brandD

这是一个合适的办法做我想要做?也可以在运行时从Java代码中选择XHTML模板使用哪种变体?我打算使用一个case switch语句,根据服务器名称确定要使用哪个变体。

回答

2

您可以通过编程设置是这样的:

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

通过XHTML中的一个bean设置它:

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

其它方式描述here

在语言环境中使用的变体可以是切换不同公司的好方法。否则,您必须以编程方式进行此操作。但如果没有其他原因,我不会推荐它。

相关问题