# Use bean in scriptlet in struts



## rob3000 (11. Nov 2005)

Hallo,

blöde frage aber wie kann ich in einer struts- anwendung ein form-bean in einem scriptlet verwenden bzw. dessen getters und setters aufrufen? einfach ansprechen mit dem namen, wie beim tag <bean:write name="myFormBean"/>  funktioniert ja leider nicht. 

Weiß jemand wie man Form-Beans in Scriptlets anspricht?

rob


----------



## mlange8801 (11. Nov 2005)

> einfach ansprechen mit dem namen, wie beim tag <bean:write name="myFormBean"/> funktioniert ja leider nicht.



Eigentlich schon, je nachdem in welchem scope Du die Bean in deinen actionmappings definiert hast, mußt du die halt aus dem entsprechenden scope ansprechen.

```
<%
MeinForm form
        = (MeinForm)request.getAttribute("myFormBean");
%>
```


----------



## rob3000 (11. Nov 2005)

Naja ich verwende die Struts Technologie und hab da eine jsp-seite, eine form-klasse, eine action-klasse und eine zweite jsp-seite. die daten von der ersten jsp-seite werden verarbeite in der action-klasse und dann in der zweiten ausgegeben, dabei kann ich in der zweiten jsp-seite einfach auf die attribute der form-klasse zugreifen und muss mit setAttribute nirgends das bean setzen. - ich kann ja nach dem die action das form-bean verarbeitet hat automatisch in der zweiten jsp-seite darauf zugreifen.
Deswegen funktioniert das auch nicht:

<%
MeinForm form
        = (MeinForm)request.getAttribute("myFormBean");
form.getName();(ein beispiel)
%> 

Habe ich da noch was vergessen?

lg


----------



## mlange8801 (11. Nov 2005)

> dabei kann ich in der zweiten jsp-seite einfach auf die attribute der form-klasse zugreifen und muss mit setAttribute nirgends das bean setzen. - ich kann ja nach dem die action das form-bean verarbeitet hat automatisch in der zweiten jsp-seite darauf zugreifen.



Das setzen der Attribute macht ja struts, das definierst Du ja in der struts-config.xml wobei:
<form-bean name="myFormBean" type="de.MeinForm" />
...
<action path="/formbeanverarbeiten"  name="myFormBean" type="de.MeineAction" scope="request">
...
Dein Formbean unter dem Namen myFormBean in den request stellt.


<bean:write name="myFormBean" property="name"/> z.B. macht ja auch nix anderes als in den jeweiligen scopes nachzuschauen ob es ein Attribut mit dem Namen myFormBean gibt und dann die getName() Methode aufzurufen und auszugeben....

Deswegen sollte das Beispiel eigentlich schon funktionieren.


----------



## rob3000 (11. Nov 2005)

ja mein for-bean ist auch in der struts-config.xml definiert nur als ich  in meiner jsp-seite dann ein scriptlet definiert habe:

<%
MeinForm form
= (MeinForm)request.getAttribute("myFormBean");
form.getVorname();
%> 

ist dann als ich form mit . geschrieben habe nicht automatisch die Liste in eclipse gekommen, wo ich dann die entsprechenden methoden des objekts auswählen kann, was ja eigentlich dann bedeutet, dass dieses objekt nicht vorhanden ist....


----------

