2016-07-07 74 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

在語言環境中使用的變體可以是切換不同公司的好方法。否則,您必須以編程方式進行此操作。但如果沒有其他原因,我不會推薦它。

相關問題