Struts Form Bean vs. Session Variable

Status
Nicht offen für weitere Antworten.

pymote

Aktives Mitglied
Hallo,

Wo liegt der Unterschied der Speicherung von Daten in Form Beans und Session Variablen?
In Anfängertutorials zum Thema Struts bekommt man die Verwendung von Form Beans eingetrichtert. Ich frag mich aber gerade welche Vorteile dies bieten soll. Wieso sollte ich nicht einfach die Formulardaten, etc. in meiner Session speichern?

danke und gruss
 

RaoulDuke

Bekanntes Mitglied
Im einem Struts Action Form werden nicht nur Daten gespeichert, sondern es gibt auch eine Methode validate() die diese Daten gleich überprüfen kann.

Natülich hindert dich niemand Formulardaten direkt im Request oder in der Session zu speichern, nur ist das halt umständlicher. Mit den ActionForms hat man eine klare Definition welche Daten in einem Formular erwartet werden und welche nicht.

Es wäre nicht nur unübersichtlich sondern auch objektorientiert gesehen falsch die Daten nicht in einem Formular Objekt unterzubringen.
 

pymote

Aktives Mitglied
danke für die schnelle antwort

deinen argumenten kann ich dir nur zustimmen. ich habe es auch gerne klar definiert welche Daten erwarten werden oder nicht.
der grund wieso ich daten in einer session-variable speichern möchte ist, weil ich so in jeder klasse/methode einfach die daten beziehen/beschreiben kann. in einer struts-typischen action methode kann ich meines wissens ja nur auf das in der struts-config.xml spezifizierte form bean zugreifen (<action name="MyForm" ... )

oder hab ich da was nicht richtig verstanden?
 

RaoulDuke

Bekanntes Mitglied
Erstmal muss man unterscheiden: Die ActionForms werden nicht immer in der Session gespeichert, sonders es hängt von der Einstellung in der struts-config.xml ab. Im Normalfall reicht es ein Formular nur im Request Kontext zu übergeben. Legt man es in der Session ab bleibt es auch über mehrere weitere Requests bestehen, das kann z.B. nützlich sein wenn man ein Formular über mehrere Seiten verteilt ausfüllen will.

Prinzipiell kann man auf ein Formular von überall rankommen wo man Zugriff auf den Request und Session Kontext hat. Ich kann in einer Action also nicht nur auf das Formular zugreifen das ich, weil es in der struts-config.xml so definiert ist, als Parameter übergeben krige, sondern ich kann mir auch aus der Session oder dem Request Kontext sonstige Formulare abholen. In der struts-config.xml kann man ja zu jeder Action angeben unter welchem Namen das Formular in welchem Scope gespeichert werden soll.
 

pymote

Aktives Mitglied
angenommen ich bin in einer methode "ActionForward methodeA()" und in der stuts-config.xml hab ich für diese action mein FormBeanA definiert. ich will jetzt aber auf daten unterschiedlicher FormBeans (FormBeanA und FormBeanB) zugreifen. Wie mach ich das?
 

RaoulDuke

Bekanntes Mitglied
z.B. so:

Code:
FormB formb = (FormB) request.getSession().getAttribute("FormBName");

Wobei FormB die Klasse ist, und FormBName der Name unter dem Struts das Formular im Session Kontext abgelegt hat. Struts legt ein Formular standardmässig unter dem Namen ab, der in der struts-config.xml definiert ist.

Also:

Code:
<form-bean name="SearchForm" type="app.struts.forms.SearchForm"/>

<action path="/SearchXYZ" 
            input="/Search" 
            name="SearchForm" 
            scope="session" 
            type="app.struts.actions.SearchAlSc">

In dem Beispiel krigt die Action /SearchXYZ das definierte SearchForm übergeben und speichert es unter dem Namen "SearchForm" in der Session ab. In der Session weil scope="session" gesetzt ist. Daher bleibt das Form da jetzt so lange liegen bis man es entfernt, oder bis die Session endet.

Man kann auch noch mit dem Parameter attribute="AndererName" einen anderen Namen definieren unter dem das Formular abgelegt wird, ansonsten nimmt Struts den Namen. Das ist z.B. ganz nützlich wenn man das gleiche Formular 2 mal auf der gleichen Seite verwenden will. Sonst könnte man die Daten der beiden Formulare nicht auseinanderhalten.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
M STRUTS/Cannot retrieve definition for form bean null on acti Allgemeines EE 4
clemson [Struts] Innerhalb Action auf form zugreifen Allgemeines EE 4
G Struts-Form: in validate- oder reset-Methode umleiten. Allgemeines EE 3
A Form Validierung mit Struts? Allgemeines EE 2
A struts: html:form-tag das Attribut "name" ersetzen Allgemeines EE 7
S Struts 2 datetimepicker Allgemeines EE 3
W Struts Tutorial für EE Noobs? Allgemeines EE 2
N Struts vs JSF ? Allgemeines EE 7
W Speicher-Problem bei WebApp unter Tomcat, Struts, Hibernate Allgemeines EE 3
Lex Property per html:link schreiben in struts Allgemeines EE 2
Shihan Line Breaks in <br /> umwandeln (Struts) Allgemeines EE 7
S Struts: zwei JSP's nutzen eine Action Allgemeines EE 5
G Struts: ActionMessage value in JSP anzeigen Allgemeines EE 2
S Problem mit Struts und tiles Allgemeines EE 4
S Struts und Session Allgemeines EE 2
K Struts - FormBean mit 2 Listen - Anzeigen und Speichern Allgemeines EE 2
S Probleme mit struts - ActionServlet Allgemeines EE 6
C Struts in iFrame Allgemeines EE 2
Z Struts: Formularfelder initialisieren Allgemeines EE 3
S Struts: Wert in einem iterierten Drop-Down Menü selektieren Allgemeines EE 7
T Struts 2 Allgemeines EE 6
R Struts-Action in JSP abfragen? Allgemeines EE 2
J struts: Bild als submit-button Allgemeines EE 2
J Internationalization mit Struts Allgemeines EE 2
E bei struts inhalte über mehrere seite verteilen Allgemeines EE 6
velaluka Struts- falsches Character-Encoding? Allgemeines EE 3
M URL Darstl. und Struts Allgemeines EE 2
G Struts beans Allgemeines EE 7
D Struts + Table Allgemeines EE 6
L Struts - Action auslösen bei Browser Back Allgemeines EE 2
N Struts - Problem mit <html:link> Action Allgemeines EE 3
netspy Struts, Spring oder ... ? Allgemeines EE 5
S Struts - Direktaufruf eines URL verhindern Allgemeines EE 11
1 Frage zu Struts und findForward Allgemeines EE 4
N Struts Jboss und Filter Allgemeines EE 2
S Fragen zu: Servlets, Struts & Hibernate Allgemeines EE 9
T Struts und Objekte in Comboboxen Allgemeines EE 4
J Probleme mit Struts Allgemeines EE 3
K STRUTS The server encountered an internal error Allgemeines EE 5
F struts logic:iterate Allgemeines EE 5
G struts-config.xml Allgemeines EE 3
H Ich bin sehr verwirrt - struts, jsp, jsf . ? Allgemeines EE 53
P Testen von Struts-Anwendung Allgemeines EE 7
A Tomcat undeploy unter Windows klappt nicht wegen struts.jar Allgemeines EE 2
B Struts Problem: Array in JSP ausgeben (logic:iterate) Allgemeines EE 12
M Struts Deployment Allgemeines EE 3
R Mehrsprachige Seite mit Struts & Co. ? Allgemeines EE 5
S mehrere Message Resources in Struts ansprechen Allgemeines EE 7
G Values aus DB in Input-Feldern anzeigen (Struts) Allgemeines EE 2
G Exception creating bean of class . (Struts) Allgemeines EE 8
B Verwendung von DynActionForm (Struts) Allgemeines EE 10
K dynamischer Zugriff auf .properties (Struts) Allgemeines EE 2
K Struts html:messages tag Allgemeines EE 2
M Struts File Upload problem Allgemeines EE 6
G Validierung mittels Struts. Benötige Hilfe. Allgemeines EE 7
J Buchempfehlung: Servlets, JSP, Struts, JSTL Allgemeines EE 3
P struts "beliebige motive in der datenbank finden" Allgemeines EE 6
P Struts und Frames Allgemeines EE 13
L jfreechart und Struts / JSPs Allgemeines EE 3
P struts Hibernate MySQL Select Statement Allgemeines EE 24
P keine verbindung vom struts framework zu mysql Allgemeines EE 2
R Vernünftige Session-Verwaltung mit Struts Allgemeines EE 4
P Struts Anwendung- FormBean Tabelle mit input type=text Allgemeines EE 2
G Probleme mit Validierung (Struts, validation.xml) Allgemeines EE 4
M Struts - ActionForward Allgemeines EE 9
clemson gesplittete struts-config mittels ant zusammenbauen Allgemeines EE 2
J Struts Textfeld Allgemeines EE 10
M Struts shale Allgemeines EE 7
M Struts - jsp site - werte formatieren Allgemeines EE 6
clemson mehrere Mail Attachments - JSP Struts Allgemeines EE 7
T JSTL + Struts (inkl.Hibernate) -> forEach Problem Allgemeines EE 6
R Struts FormBean Allgemeines EE 4
S Struts 1.1 download einer Datei Allgemeines EE 4
R Use bean in scriptlet in struts Allgemeines EE 4
S reagieren auf select events in jsp-struts seiten Allgemeines EE 5
P Struts - Text formatieren Allgemeines EE 6
C Grafische Komponenten unter Struts jsp (Liste) Allgemeines EE 4
P Struts - Abarbeitung Allgemeines EE 3
P J2EE Struts - Database connection failed - Hilfe?:( Allgemeines EE 6
P J2EE Struts Allgemeines EE 2
R struts 1.0.2 Checkbox-Property bleibt immer false Allgemeines EE 3
TRunKX Werteübergabe von einer *.jsp in eine *.java ohne struts Allgemeines EE 4
clemson [Struts] Validierung server-seitig bringt StackOverflowError Allgemeines EE 5
clemson [Struts] HTML-Checkbox Tag ID Allgemeines EE 2
clemson [Struts] Einer Action Parameter übergeben Allgemeines EE 2
G In einer JSP auf Struts-Elemente "reagieren" Allgemeines EE 4
clemson [Struts] struts-config.xml parsen Allgemeines EE 2
clemson [Struts] Parameter an ActionForward anhängen Allgemeines EE 3
clemson [Struts] TilesRequestProcessor - processRoles Allgemeines EE 14
F Struts Allgemeines EE 9
G Struts-Write Anweisungen in Hyperlink einbauen Allgemeines EE 3
G Listenfeld mit Struts und Beans realisieren Allgemeines EE 4
L Anfänger: suche Tutorials zu Struts/EJB Allgemeines EE 6
G Struts - dynamisches FormBean Allgemeines EE 3
R struts und Mapped Properties Allgemeines EE 2
A Javadocs zu struts Allgemeines EE 5
A Kolloquium J2EE / Struts Allgemeines EE 16
A Expression Language in Struts? Allgemeines EE 6
B struts - beginnerproblem Allgemeines EE 3
B Struts DBCP Allgemeines EE 4

Ähnliche Java Themen

Neue Themen


Oben