# Wie Backing Beans richtig einsetzen?



## romzac (10. Nov 2009)

Ich habe mit meinem Arbeitskollegen einen kleinen Disput darüber gehabt, wie Backing Beans idealerweise eingesetzt werden sollen.
Als Beispiel möchte ich mich gerne auf einen kleinen Bestellprozess beziehen.
Eine Website bestehe aus mehrere Webpages, die nacheinander aufgerufen werden, siehe Bild.

Ich habe mal gelesen, zu jeder Pages sollte jeweils eine Backing Bean eingesetzt werden, um nur die Daten zu validieren/konvertieren, die genau mit dieser Page zu tun haben.

Mein Arbeitskollege sagt aber, die Backing Bean soll für die ganze Website eingesetzt werden, um den Vorteil zu nutzen, dass nur dann die Daten zwischen den einzelnen Pages direkt ausgetauscht werden können.

Deshalb die Frage an die Java Gemeinde: welches Design ist besser?

Business Logik direkt in die Backing Bean und jede Page an die gleiche Bean ankoppeln,
oder Backing Beans nur als Event Listener/Validatoren einbinden und Daten an die richtige Business Logik weiter geben?

THX 4 Answer!


----------



## MrWhite (11. Nov 2009)

Also ich würde da im Sinne von SEAM sagen: Eine Backing-Bean pro Prozess/Conversation, es sei denn die Aktionen sind nicht statusbehaftet! Eine Bean für eine gesamte Website ist doch so ne Art GodClass-
Antipattern. Für jede Page eine eigene Bean aufzumachen ist aber auch nicht der Königsweg.


----------



## romzac (11. Nov 2009)

Okay, eine Backing Bean pro Prozess scheint mir dann so ein Mittelding aus Bean / vs. Bean / Page zu sein.
Weil eine Site kann ja mehrere prozesse abwickeln, die wiederum aus mehreren Pages bestehen können.
Kurioserweise finde ich dzau auf Anhieb aber auch keine definitive Aussage in der JSF Doku - oder ich übersehe sie, je nachdem ... 

THX.


----------



## JanHH (19. Nov 2009)

Habe die Erfahrung gemacht, dass man beim entwickeln mit seam andere Wege geht als ohne. Ohne seam neigt man eher dazu, zu jeder JSP-Seite 1:1 eine Backing-Bean zu haben, und wo man dann die Applikationslogik und den Austausch der Daten zwischen mehreren Seiten lässt.. löst genau die Fragen aus, die zur Entwicklung von seam geführt haben. Mittlerweile ergibt es sich quasi automatisch, dass die session-beans (die ja in etwa sowas wie backing beans sind) eher den model-beans (bzw. den entities) zugeordnet sind. Ohne seam ist das eigentlich alles ziemlich krampfig, mit wird es recht flüssig und elegant.


----------

