我们有一个JSF应用程序,它为4个不同的商业品牌部署了4个不同的版本。目前,我们为每个品牌都有一个单独的代码库,当进行更改时,我们会将更改从一个主品牌的代码库复制并粘贴到其他品牌的代码存储库中。
我正在尝试为所有品牌提供一个代码库。
我们将应用程序中使用的文本放在资源属性文件中,XHTML 模板中的所有标签和文本都来自该文本。
我的计划是为每个品牌创建一个单独的属性文件,并使用 Locale 变体代码在它们之间切换。所有四个品牌都en_AU在以下之后有一个变体,即:
- en_AU_brandA
- en_AU_brandB
- en_AU_brandC
- en_AU_brandD
这是做我想做的事情的合适方法吗?还可以在运行时从 Java 代码中选择 XHTML 模板要使用的变体吗?我计划使用一个案例切换语句,该语句根据服务器名称确定使用哪个变体。
您可以像这样以编程方式设置它:
FacesContext.getCurrentInstance().getViewRoot().setLocale(locale);
通过 xhtml 中的 bean 设置它:
<f:view locale="#{user.locale}"/>
此处介绍了其他方法
在区域设置中使用变体可能是切换不同公司的好方法。否则,您还必须以编程方式执行此操作。但是如果没有其他原因,我不会推荐它。