2012-03-29 1 views
2

ich auf Struts mache ein Projekt Zugriff auf 2, die ich Wissen nach und nach etwas bekommen ..die Werte der Klasse in jsp Seite aus der Action-Klasse

Ich habe die Aktion wie diese

<action name="backaction" class="HandlerAction"> 

<result name="user_profile" type="redirect">hai.jsp</result> 

In der Klasse Handler Aktion habe ich das Objekt userprofile, in dem die name und age Mitglieder sind.

In der Funktion ausführen

log.info(userprofile.getName())//it is giving name xyz 

return "user_profile" 

Ich erhalte hai.jsp aber ich bin nicht in der Lage, den Wert in diesem Objekt userprofile in jsp retreive.

hai.jsp ist wie folgt ..

<%@taglib prefix="s" uri="/struts-tags"%> 
<html> 
<body> 
<s:textfield name="user_name" value="%{userprofile.name}"/> 

</body> 
</html> 

Ich habe versucht, indem sie als value="%{name}" auch setzen, aber ich bin nicht der Wert xyz bekommen ..

+0

verwenden, wenn ich die type = „redirect“ entfernen .. .die selbe Klasse Backaction wird iterativ ausgeführt und geht bis unendlich. – user533

Antwort

1

Das Problem ist mit

<result name="user_profile" type="redirect">hai.jsp</result> 

, da Sie einen Ergebnistyp umleiten verwenden, was bedeutet, dass Rahmen wird eine neue Anfrage und Antwort-Objekt und verwirft alte Request/Response Object.So erstellen, wenn Sie von Ihrer Aktion zurückkehren Ihr Benutzerobjekt gehört ihnen im Wertestapel, bis Sie S2 mitteilen, dass Sie den Ergebnistyp redirect verwenden möchten.

Wenn der Redirect-Ergebnistyp angezeigt wird, verwirft er alle vorhandenen Daten und erstellt eine neue Anforderung für Sie, den Inhalt in den Wertestapel zu stellen. Deshalb funktioniert dies nicht für Sie. Ich bin nicht sicher, warum Sie den Ergebnistyp redirect verwenden da Sie das gleiche tun können, indem Sie einen beliebigen Build-in-Ergebnistyp verwenden, sagen Sie success.

Wenn Sie noch Redirect Ergebnis verwenden, empfehle ich Ihnen, die Benutzerprofildaten in entweder Session und rufen Sie sie in Ihrer nächsten Aktion zu speichern oder scope-interceptor

+0

Wenn ich das Ergebnis success..habe, geht es um die Aktion index.jsp submit action .. (dh wenn der Benutzer auf den Submit-Button klickt, wird die Aktion generiert. ..). – user533

+0

Ich bin mir nicht sicher, was Sie meinen, indem Sie zur Aktion von index.jsp gehen, da Sie jede Ergebniszeichenfolge erstellen und die Ansicht gemäß Ihren Anforderungen anzeigen können. –

+0

Entschuldigung ... es ist in der Lage, zur Handhabung zu gehen ... aber irgendwie fehlt das Token oder etwas ähnliches ... ich weiß nicht, warum ... irgendwie danke für die Hilfe..ich habe es seither versucht 3 Stunden..Sie haben Ihrem Maximum geholfen. – user533

1

Struts2 Redirect Result

die Anrufe {@link HttpServletResponse # sendRedirect (String) sendRedirect} -Methode an den angegebenen Speicherort. Die Antwort wird angewiesen, den Browser an den angegebenen Speicherort umzuleiten (eine neue Anforderung vom Client). Dies hat zur Folge, dass die gerade ausgeführte Aktion (Aktionsinstanz, Aktionsfehler, Feldfehler, etc.) verloren geht und nicht mehr verfügbar ist. Dies liegt daran, dass Aktionen auf einem Single-Thread-Modell basieren. Die einzige Möglichkeit zum Übergeben von Daten besteht in der Sitzung oder mit Webparametern (URL? Name = Wert), bei denen es sich um OGNL-Ausdrücke handeln kann.

Verwandte Themen