java - 在 JSF 应用程序中针对不同环境使用区域设置变体

标签 java jsf locale

我们有一个 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/

相关文章:

multithreading - 在 JSF Web 应用程序中使用延迟加载时的 hibernate session 处理

JSF commandButton - 将 POST 参数传递到外部站点

java - 货币符号国际化 Java

java - 如何删除 : java. lang.OutOfMemoryError

java - 如何使用java删除文件路径中的无效字符?

java - 当属性名称以 "set"开头时出现未映射的目标属性警告

ruby-on-rails - Rails i18n : Translation missing problem, 语言环境未定义

java - 我可以修改现有对象的 JComboBox 弹出窗口背景颜色吗?

ajax - 在 ajax 事件上禁用/启用命令按钮

Android:如何以编程方式更改应用程序语言?