Struts JSP : set textfield-Wert aus den session-Informationen
Ich habe eine DLPUser Objekt in meiner session, das DLPUser ist im Grunde ein container für Strings, ints und einige nützliche Infos für mich.
(das ist ein Stück code, der in meiner action-Klasse in java)
Map <String, Object> session = ActionContext.getContext().getSession();
session.put("logged-in","true");
session.put("user", user); //user is DLPUser user = new DLPUser();
Nun möchte ich zeigen, den Wert des Benutzers.getName(); in ein textField in einigen JSP
Wie kann ich dies tun?
Ich arbeite mit Struts-tag und das folgende hat nicht funktioniert.
<s:textfield label="Name" name="name" value="<% session.user.getName(); %>"/>
oder
<s:textfield label="Name" name="name" value="#session.user.getName"/>
Diese soll einfach sein... aber ich komme nicht weiter und finde keine gute Referenz über dieses Ding in struts und jsp.
Jede Hilfe wird sehr geschätzt.
InformationsquelleAutor nacho4d | 2009-09-02
Du musst angemeldet sein, um einen Kommentar abzugeben.
War ich lernen, wie man das selbst tun, und diese Diskussion war hilfreich. Diese Kombination aus material von verschiedenen Webseiten und das Buch "Struts 2 in Action" hat mich zu, wo ich sein musste.
Nate und nacho4d die Antworten sind nahe liegend. Hier ist was ich getan habe:
Erforderlichen Importe:
Meine action-Klasse ("User") Erklärung:
Meine session-variable ist ein Datenelement des Benutzers:
Dann in meiner Methode, die den Benutzer authentifiziert (beachten Sie, dass UserModel ist einfach Klasse nur die Daten der Mitglieder und deren getter/setter)
Schließlich in meine jsp-Datei:
Beachten Sie die syntax der Zugriff auf die session-Objekte/Methoden, Daten Mitglieder. Obwohl ich habe es nicht gelesen ausführliche irgendwo, ich vermute, dass:
Sitzung bekommt man Zugriff auf die session-stack/Objekt?
Und von dort aus, das Ergebnis ist normal, Punkt-Operatoren für den Zugriff auf Objekte und deren Methoden/members.
Ich bin ein Neuling in diesem, aber es scheint auch, wie es doesn T Angelegenheit, wenn die UserModel die Daten der Mitglieder sind private, die JSP darauf zugreifen kann sowieso.
Oh. Eine Letzte bisschen, um es zu "vollenden", wie es etwa Abmelden? Mein java für die logout-Aktion:
#session.user.name
wäre in der Eigenschaft tag. es funktioniert nicht in der textfield-tags, obwohl im nicht sicher, warum. auch das UserModel Eigenschaften sind privat, aber Ihr Zugriff auf ein Benutzer-Objekt (die, die Sie setzen auf der Karte), so können Sie den Zugriff auf Ihre Eigenschaften privat.Bitte siehe meine Kommentare für Sie zu arbeiten in
<s:textfield>
InformationsquelleAutor
<s:textfield value="%{#session.user.name}"/>
für mich gearbeitet.InformationsquelleAutor Ram Dwivedi
Sehe ich... ich danke Ihnen sehr für Ihre Antwort. Umar
😉
Aber gibt es eine einfachere Möglichkeit?
Ich meine , wie kann ich java-Objekte oder Variablen innerhalb
zum Beispiel im Fall der Immobilie:
Drucke den Inhalt von meinen user-Namen (session-var)
wie ?
Ich denke, dies ist nicht nur für die Streben. könnte aber auch angewendet werden für die normale jsp
wie
Also meine Frage ist was geht hinein??????.
Vielen Dank
(Kann ich nicht testen jetzt, aber würde das funktionieren?)
Bin ich immer closser?
InformationsquelleAutor nacho4d
Nur ein weiterer Hinweis. Wenn Sie brauchen, um direkt Zugriff auf Ihr Java-bean (und umgehen der Sitzung), können Sie folgende syntax verwenden:
InformationsquelleAutor Kyle
Sollten Sie in der Lage zu tun:
Brauchen Sie nicht "Holen" vor-Namen, wie Sie hatte in Ihrem Beispiel. Auch, es sieht aus wie Umar ' s Antwort ist ein Beispiel für Struts1. Sie sind mit Struts 2, richtig?
InformationsquelleAutor Nate