# Struts2 - Mehrere Methoden/Actions in einer Klasse + Validation



## pdunkler (8. Okt 2009)

Hallo alle zusammen,

ersteinmal hallo an alle  Das hier ist mein erster Post im Forum und ich denke es werden in Zukunft noch einige Folgen, da ich gerade dabei bin, ordentlich in die Java-Entwicklung einzusteigen.

Ich arbeite derzeit mit Struts2 und habe derzeit ein Problem, welches ich erstmal "dirty" gelöst habe. Da wollte ich mal nachfragen, ob vielleicht jemand bescheid weiß.

Ich habe das meiner Meinung nach generelle Problem hier mal in einem Beispiel dargestellt:

3 Actions:
registerIndexAction
registerStepAction
registerDoneAction

alle drei Actions haben eine Methode und sind alle in einer Klasse gespeichert, über den Methodennamen aber in der struts2-config richtig gemappt.

Nun gibt es in dieser Klasse, wo sich ja alle drei Actions befinden natürlich Klassenvariablen - Und zwar manche, welche nur von der ersten, manche nur von der zweiten und andere wiederrum nur von der dritten gebraucht werden. Die Getter/Setter der Variablen sind mit AnnotationValidatoren versehen (@RequiredStringValidator(dfggfdggfg))

Wenn ich nun also eine der Methoden aufrufe und beispielsweise ein Formular abschicke, wird validiert. Nur ist nun das Problem, dass struts immer alle validierungen in der klasse korrekt haben will - natürlich sind aber bei registerStepAction auch nur die variabeln von der form gesetzt, welche gebraucht werden und nicht die für registerIndexAction und registerDoneAction.

Gibt es also eine Möglichkeit, pro Methode festzulegen, welche der Validatoren für diese Methode zutreffen müssen? Ich habe keine Lust, für jeden kleinen Scheiß immer neue Klassen anzulegen 


Ich würde mich sehr freuen, wenn vielleicht jemand eine Antwort auf diese Frage kennt 

MfG


----------



## oetzi (8. Okt 2009)

ähm, irgendwie verwirrt mich, was du da schreibst.

Hast du wirklich 3 Actions oder ist das nur eine Action "register" mit den 3 Methoden "registerIndexAction", "registerStepAction" und "registerDoneAction", die du dann in der struts.xml über ... method="xy" ansprichst?

Jede Action ist ja quasi eine Klasse und so hätte dann auch jede Action ihre eigene validate() Methode.


----------



## Unregistriert (8. Okt 2009)

Also - Die Aussage "Jede Action ist eine Klasse" ist ja so halbrichtig - Kann man ja auch anders machen  Das ist das, wo ich drauf hinaus will.

Ich habe die drei Actions "registerIndexAction", "registerStepAction" und "registerDoneAction" - Das sind auch wirkliche Actions! Und Diese sind wie du schon beschrieben hast mit method="xy" in der struts-config deklariert. Jede hat also ihre eigene Action in der Klasse Register (bspw.).

Übrigens ist diese Situation nicht dieselbe, wie sie momentan bei mir anliegt - Das ist nur ein fiktives Beispiel


----------

