我们有一个 JSF 应用程序,它针对其服务的 4 个不同的业务品牌部署了 4 个不同的版本。目前,我们为每个品牌都有一个单独的代码库,当发生更改时,我们会将更改从一个主品牌的代码库复制并粘贴到其他品牌的代码存储库。
我正在尝试转向只为所服务的所有品牌使用单一代码库。
我们在资源属性文件中拥有应用程序中使用的文本,XHTML 模板中的所有标签和文本都来自该文件。
我的计划是为每个品牌创建一个单独的属性文件,并使用区域设置变体代码在它们之间进行切换。所有四个品牌均为 en_AU,并带有变体,即:
- en_AU_brandA
- en_AU_brandB
- en_AU_brandC
- en_AU_brandD
这是完成我想做的事情的适当方法吗?另外,是否可以在运行时从 Java 代码中选择 XHTML 模板要使用的变体?我计划使用 case switch 语句来根据服务器名称确定要使用的变体。
最佳答案
您可以像这样以编程方式设置它:
FacesContext.getCurrentInstance().getViewRoot().setLocale(locale);
通过 xhtml 中的 bean 设置它:
<f:view locale="#{user.locale}"/>
其他方式描述here
使用区域设置中的变体可能是切换不同公司的好方法。否则,您也必须以编程方式执行此操作。但如果没有其他原因我不会推荐它。
关于java - 在 JSF 应用程序中针对不同环境使用区域设置变体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38256397/