2016-07-07 15 views
1

Wir haben eine JSF-Anwendung, die in 4 verschiedenen Versionen für 4 verschiedene Geschäftsmarken bereitgestellt wird. Derzeit haben wir für jede Marke eine eigene Codebasis, und wir kopieren und fügen Änderungen von der Codebasis einer Hauptmarke in die anderen Codepositorien anderer Marken ein, wenn Änderungen vorgenommen werden.Verwenden von Gebietsschemavarianten in JSF-Anwendungen für verschiedene Umgebungen

Ich versuche, nur eine einzige Codebasis für alle Marken zu haben.

Wir haben den Text in der Anwendung in einer Ressource Eigenschaftendatei verwendet und alle Beschriftungen und Text in den XHTML-Vorlagen stammen davon.

Mein Plan ist es, eine separate Eigenschaftendatei für jede Marke zu haben und zwischen ihnen mit dem Gebietsschema-Variantencode zu wechseln. Alle vier Marken mit wäre en_AU mit einer Variante nach dh:

  • en_AU_brandA
  • en_AU_brandB
  • en_AU_brandC
  • en_AU_brandD

Ist dies eine angemessene Art und Weise zu tun, was ich versuche zu machen? Ist es auch möglich auszuwählen welche Variante von den XHTML Templates aus dem Java Code zur Laufzeit verwendet werden soll? Ich plane, eine Case-Switch-Anweisung zu verwenden, die bestimmt, welche Variante basierend auf dem Servernamen verwendet werden soll.

Antwort

2

Sie können es programmatisch festgelegt wie folgt aus:

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

es über eine Bohne in den xhtml Rahmen:

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

Andere Möglichkeiten here

Mit der Variante im Locale beschrieben werden kann ein guter Weg sein, für die verschiedenen Firmen zu wechseln. Ansonsten müssen Sie dies auch programmatisch tun. Aber ich würde es nicht empfehlen, wenn es keinen anderen Grund gibt.

Verwandte Themen