PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Bean von Servlet zu JSP


rapsli
16.07.2010, 18:45
Ich habe ein Servlet. Das hat in etwa den folgenden Code:

...
MessageBean message = new MessageBean();
request.setAttribute("messageBean", message);
ServletContext sc = getServletContext();
RequestDispatcher rd = sc.getRequestDispatcher("/WEBINF/jsp/searchoverview.jsp");
rd.forward(request, response);
...


Mein searchoverview.jsp sieht wie folgt aus:


...
<jsp:useBean id="messageBean" class="ch.rapsli.sagent.bean.MessageBean" >
<jsp:setProperty property="message" name="messageBean" value="Leer"/>
</jsp:useBean>
...
Hier ist die Message: <jsp:getProperty name="messageBean" property="message"/>


Habe ich hier komplett etwas falsch gemacht, oder sollte es in Theorie so gehen?


MrEasy
18.07.2010, 13:08
Kommt drauf an, was du machen willst.
Wieso setzt du den Wert denn hiermit auf Leer?
<jsp:setProperty property="message" name="messageBean" value="Leer"/>

rapsli
19.07.2010, 11:24
Kommt drauf an, was du machen willst.
Wieso setzt du den Wert denn hiermit auf Leer?
<jsp:setProperty property="message" name="messageBean" value="Leer"/>

-> Ich habe gelesen, dass das wie ein Konstruktor ist. Ich fülle einfach mal etwas ein, damit dann auch etwas ausgegeben wird. Wie meinst du, "kommt drauf an"?

rapsli
23.07.2010, 15:01
jemand noch eine Hilfe? Ich möchte eigentlich nur ein Bean vom Servlet ans JSP übergeben.

kill4h`
23.07.2010, 23:08
Zwei Anmerkungen habe ich noch:
Wenn du ein bereits instantiiertes Bean weitergeben willst, gibst du i.d.R. kein class Attribut an, sondern type. Sonst sollte Jasper eigentlich einen Fehler werfen.

Was für mich manchmal ganz hilfreich ist, ist die Objekte nicht in den Request, sondern den ServletContext zu legen. Damit bist du quasi im "application" scope und so kann man z.B. Singleton umsetzen (nicht im strengen Sinne ;))