# Frage zu Struts und findForward



## 1216770132 (2. Jan 2007)

Servus, 

ich mach gerade ein Struts Tutorial durch und dabei ist mir aufgefallen, dass die Beispiele bzw die Benutzereingaben immer auf neuen Seiten ausgegeben werden (mapping.findForward("success")) oder so ähnlihc. Wenn ich nun z.B. eine Drop Down Combox habe und eine schaltfläche... Angenommen es solle beim Druck auf den Button das ausgewählte Element auf der gleichen Seite ausgegeben werden, benötige ich dann auch dieses Forward oder wie löst man das ?

Es soll also keine neue Seite aufgerufen werden sondern das Ergebnis auf der gleichen Seite dargestellt werden.
Gruß
Paul


----------



## 1216770132 (3. Jan 2007)

Ein weiteres Problem ist, dass ich es nicht hinkriege bzw nicht weiß wie ich über diesen Button in Abhängigkeit des ausgewählten Items aus der ComboBox eine Action generie. Z.B. hat die ComboBox 3 Einträge. Nun soll für jeden ausgewählten Eintrag eine eigene Methode aufgerufen werden, deren Ergebnis auf der gleichen Seite dargestellt wird.
alles was ich bisher hab ist die ActionKlasse:

StartResultAction.java


```
public ActionForward execute(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) 
	{		
		
		init(request);
               
                //beim druck auf den submit button finde heraus welches item selektiert wurde und gib
               // die entsprechende Action zurück ?? Anweisungen ??

		String action = request.getParameter("????");
                String  [] rechnen = {"addieren","subtrahieren","dividieren"};

		request.getSession().setAttribute("rechnen",rechnen);
		return mapping.findForward("success");
		
	}
```
ergebnisseite.jsp

```
<html:form action="/StartResultAction"> 
         <html:select property="???" style="width:250px">
				<html:option value="addieren">addieren</html:option>				
 				<html:option value="subtrahieren">subtrahieren</html:option>
 				<html:option value="dividieren">dividieren</html:option>
			</html:select>       
          </div></td>
            <td width="135" valign="top">    
               
               <html:submit  styleClass="button" value="Rechne">                        
                 </html:submit>
             </td>
        </html:form>
```

Bitte kann mir jemand helfen, ich drehe hier langsam durch :-/


----------



## HLX (3. Jan 2007)

Wohin "success" und andere Forwards verweisen bestimmst du in der Datei struts-config.xml im Ordner WEB-INF.


```
<action path="/StartResultAction" type="deinPackage.StartResultAction"
         name="deineActionForm" 
         scope="request"
         input="/deinPfad/ergebnisseite.jsp">
                <forward name="success" path="/deinPfad/ergebnissseite.jsp"/>
                <forward name="error" path="/deinPfad/fehlerseite.jsp"/>
</action>
```

In der JSP-Seite muss es heißen:
<html:form action="/StartResultAction*.do*"> 

Die gewählte Option deiner Combobox kannst du in der execute-Methode deiner StartResultAction bequem aus dem ActionForm-Parameter holen. Einfach den Parameter form auf deine ActionForm-Implementierung, die der Action zugewiesen ist casten und die getter verwenden.


----------



## Gast (4. Jan 2007)

Hallo,

zu Problem Nr. 1: 

über mapping.getInputForward() wird die gleiche Seite noch einmal aufgerufen.

Wie sieht die implementierte Form aus, die die Werte hält?

Gruß
Martin


----------



## Gast (4. Jan 2007)

Hallo,

zu Problem Nr. 1: 

über mapping.getInputForward() wird die gleiche Seite noch einmal aufgerufen.

Wie sieht die implementierte Form aus, die die Werte hält?

Gruß
Martin


----------

