# JSF Anwendung und individuelle Kofiguration



## Guest (14. Mrz 2008)

Gemeinde, 

ein beispielhaftes Szenario: 
ich habe eine JSF Web Anwendung entwickelt (JSF, Spring, Hibernate, Tomcat) und nun diese Web Anwendung 5 Kunden
verkauft. Nun möchte jeder dieser Kunden kleine Änderungen in der Form von 

- welche Seite soll nach dem Einloggen angezeigt werden
- Welche Links werden angezeigt und welche nicht


Meine Frage: Wie kann man sowas möglichst einfach pflegen ohne jetzt 5 einzelne Programme pflegen und verwalten 
zu müssen, bzw. sowas "hart codieren" zu müssen.  Ich stelle mir z.B. vor, dass es einfach eine (xml ?) Datei, wo man sowas einfach steuern kann. 

Hat jemand irgendwelche Ansätze oder Beispiele dazu ?

Danke im voraus!

Gruß
Lechnix


----------



## Guest (17. Mrz 2008)

ok trotzdem danke an alle die dies gelesen haben. 

Gruß
Lechnix


----------



## maki (17. Mrz 2008)

Wieso nutzt du nicht die Spring Konfiguration?


----------



## Guest (17. Mrz 2008)

wie ?

du meinst die "application-Context.xml" ?

Wie soll ich denn sowas konfigurieren ?


Gruß
Lechnix


----------



## Gast (18. Mrz 2008)

Hallo, 

also mal im Vorraus Customization ist ein ziemlich komplexes Thema und eigentlich nicht in zwei drei Saetzen zu beantworten.

1. Individuelle Anpassungen muessen sich immer in der Architektur niederschlagen.

2. Eben mal kurz was oben drauf setzen ist schwierig.

Hier mal ein paar Anregungen:

A.: Anzeigen von Links, Widgets etc.:
- Du koenntest z.B. eine Methode einfuehren "isVisible". Diese gibt an ob ein Widget sichtbar ist oder nicht.
In der Impl. des Bean nutzt du dann Spring IOC, um die richtige Strategie zu setzen. Damit muesstest du dann lediglich bei "XML Konfig" verschiedene Kundenspezifische XML Dateien ausliefern. Bei Annotationbased langt es uebrigens die richtigen Klassen pro Kunde auszuliefern.

- Alternativ kannst du deine Kunden auch in einer DB abbilden und anhand der dortigen Information bestimmen, ob etwas sichtbar ist oder nicht. Der Vorteil daran mit einer schoenen Backend GUI kann man das ganze Verhalten auch zur Laufzeit aendern. Problem es ist ziemlich viel Aufwand.

B. Anzeige verschiedener Seiten etc.
- Eine Moeglichkeit ist die Nutzung verschiedener faces-config Dateien.
- Du kannst aber auch einfach pro Kunde verschiedene Seiten ausliefern
- Nutzung von Facelet als TemplatingEngine und ein wenig Ueberlegung und schon koenntest du per IOC oder DB die richtigen "Seiten" benutzen bzw. wahrscheinlich langt dann auch schon ein wenig CSS etc.

Gruesse

Gast


----------



## SnooP (18. Mrz 2008)

Sichtbarkeiten diverser Komponenten kann man mit Hilfe von Mandantenfähigkeit und/oder Rollenkonzept und Tomahawk-Komponenten erreichen.

Diverse Properties-Einstellungen halt via Properties... diese können dann zentral ausgewertet werden. Jeder Kunde erhält seine individuelle Properties-Datei... (oder auch mehrere).


----------



## Guest (26. Mrz 2008)

alles klar, nachdem das nun wieder ein thema ist und ich hier nochmal reingeschaut habe...

jo, das sind ein paar brauchbare ideen. vielen dank!


----------

