# Struts aus JSP ActionForm-Eigenschaft lesen



## Jay1980 (14. Mai 2010)

Boah, 

plag ich mich damit nun schon lange rum:
Ich habe eine JSP für den View. Ichc habe eine ActionForm erstellt, die die Eigenschaft anzeigeText hat. Nun wird dann ja die JSP aufgerufen und ich muss in die JSP den Eintrag reinschreiben, damit mir die JSP irgendwie den Wert der Eigenschaft lesen und anzeigen kann. Ich bin neu im Umgang mit Struts, vermute aber bis jetzt, dass man das wohl entweder mit den Tags <bean:write oder mit der Kombo <jsp:useBean ... und <jsp:getProperty ... machen kann. Leider habe ich keine Ahnung was ich bei der id genau eintrage. 

Hier mal meine beteiligten Klassen und falls da jemand einen Link zu einem Tutorial hat, nur her damit.

Die JSP 'tagesansicht.jsp:

```
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>
<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Tagesansicht</title>
</head>
<body>

<h1><bean:message key="ueberschrift.tagesansicht" /></h1>
<h2>Anwendungsfallbereich</h2>
<h3>Orientierungszeile</h3>
<p>Anzeige-Text Tagesansicht-Bean:<br />

<!--  schreibt taaf.getAnzeigeText() -->
<bean:write name="taaf" property="anzeigeText" />

</p>
<h3>Anwendungsfallarea</h3>
<p>
jkg
</p>
<h2>Anwendungsfallunabhängiger Bereich</h2>
<ul>
<li>Startseite</li>
<li>Anwendungsfallauswahl</li>
<li>Anwendungsfallabbruch</li>
</ul>


</body>
</html>
```

Hier das ActionForm:

```
public class TagesansichtAF extends ActionForm {
	
	private String anzeigeText;
	
	TagesansichtAF() {
		
		// erstmal den Eltern-Konstruktor durchrattern lassen
		super(); // siehe JavaInsel8, S. 385
		
		// eigenen Kram dahinter legen
		this.setAnzeigeText("Anzeigetext aus Default-Konstruktor des ActionForm!");
		
	}
	
	public String getAnzeigeText(){
		return anzeigeText;
	}
	
	public void setAnzeigeText(String anzeigeText) {
		this.anzeigeText = anzeigeText;
	}
}
```

Und die Action, die das ActionForm instanziiert und im Session-Scope ablegt:

```
public class StartZumSpielenAnmeldenA extends Action {

	// Action fuer Startknoten
	
	// 'normale' Action implementiert execute()
	public ActionForward execute( 
			ActionMapping mapping,
			ActionForm form,
			HttpServletRequest request,
			HttpServletResponse response
			) throws Exception {

		// ActionForm steht in der Konfigurationsdatei
		TagesansichtAF taaf = (TagesansichtAF) form; // HIER IST DIE INSTANTIIERUNG
			
		// returniert ActionForward-Instanz
		String ffwdstr = "tagesansicht"; // Wert des name-Attributs in forward-Tag des action-mapping-Tags 
		return mapping.findForward(ffwdstr);
		
	}
}
```

Danke vorab, ich habe vor allem keine Ahnung wo ich noch dran drehen könnte.


----------



## Jay1980 (15. Mai 2010)

Das muss doch eigentlich ein Klacks sein für jeden Struts-Fuxx - ggf. habe ich meine Frage so nicht rüber gebracht:
also, wenn ich '<bean:write' nutze, welche Angabe muss ins 'name'-Attribut als Wert?


----------



## Jay1980 (15. Mai 2010)

Hm, wollte gerade ein Beispielprojekt zusammenschustern, um das Problem zu identifizieren und siehe da, nun geht das kleine Projekt, es scheint also nicht am bean:write zu liegen. 

Der Wert des name-Attributs muss übrigens der gleiche String sein, wie in der Struts-Konfigurationsdatei im form-bean-Element. Dieses Tutorial hat mir weitergeholfen: 
Struts Tutorial - Hello World Example using Eclipse

Na dann hoffe ich mal, dass ich meinen Fehler im größeren Projekt nun finde.


----------



## Jay1980 (15. Mai 2010)

Ok, nun klappt es, der Fehler war, dass ich nicht den Namen angab, der im form-bean Eintrag der Konfigurationsdatei steht.


----------



## gman (16. Mai 2010)

Hi,

gibt es einen Grund warum du dich mit Struts 1 rumschlägst (Lecay-Code)? Wenn ich mir den 
Beispielcode angucke gefällt mir Struts 2 doch irgendwie besser.


----------



## maki (16. Mai 2010)

Wenn man schon die Wahl hat, dann ist Struts (1&2) wohl eine schlechte, Struts 1 ist Uralt und nur noch in Legacy Applicationen zu finden, Struts2 findet man eigentlich nirgends 

JSF (Facelets, JSPs sind tot), Wicket oder GWT, wenn man schon die Wahl hat.


----------

