Dieses Problem hat mich immer verwirrt. Beim Schreiben gewöhnlicher JSP-Programme ist es einfach, Parameter über Formulare, Anforderungen, Links usw. zu übergeben. In Struts2 kann ich sie jedoch nicht an jeder Stelle sehen, an der ich schreibe Auf jede Anfrage oder Antwort weiß ich nicht, wie man Parameter übergibt. Heute habe ich etwas über die Parameterübergabe in struts2 gelernt und endlich den Zweifel gelöst, aber es ist noch nicht ganz klar und muss in Zukunft untersucht werden.
Lassen Sie mich hier darüber sprechen, wie Parameter zwischen Aktionen in struts2 übergeben werden. Die Parameterübertragung zwischen Aktionen wird in der Datei struts.xml konfiguriert. Verwenden Sie das Tag param, um den Namen und Wert des übergebenen Parameters anzugeben. Er muss jedoch mit der Aktion übereinstimmen an den der Attributname übergeben werden soll. Lassen Sie uns dies anhand eines Beispiels veranschaulichen.
Beispiel: Es gibt eine Login.jsp-Seite mit zwei Elementen: Benutzername und Passwort. Die Daten werden an Aktion1 übermittelt und dann an Aktion2 weitergeleitet oder umgeleitet, und Aktion1 fordert an, weitergeleitet oder umgeleitet zu werden Im Prozess von Aktion2 müssen die beiden Parameter Benutzername und Passwort sowie ein benutzerdefinierter konstanter Parameter an Aktion2 übergeben werden. Action2 empfängt die Parameter und zeigt die Parameter auf einer Ergebnisseite an: result.jsp
Code:
Login.jsp: <form action="/struts2/test/action1" method="post"> 姓名:<input type="text" name="username"/><br/> 密码:<input type="password" name="password"/><br/> <input type="submit" value="提交"/> <input type="hidden" name="type" value="something"/> </form>
struts.xml: <action name="action1" class="com.suo.actions.Action1"> <result name="success" type="redictAction"><!--type指定是请求转发还是重定向--> <param name="actionName">action2</param><!--在这里指定要请求转发或是重定向到的Action--> <param name="username">${username}</param> <param name="password">${password}</param><!--action1中的属性值--> <param name="myparam">piao</param><!-- 自定义的不变参数 --> <!--在这里定义的参数,在传到的Action中,都要有相应的set/get方法,才能够得到该参数 , 并且在传递到的Action中的属性名,要和参数的name保持一致--> </result> </action> <action name="action2" class="com.suo.actions.Action2"> <span> </span><result name="success">/WEB-INF/result/action.jsp</result> </action>
Action1.java: package com.suo.actions; import com.opensymphony.xwork2.ActionSupport; public class Action1 extends ActionSupport { private String username; private String password; public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String execute() { System.out.println(type); return SUCCESS; } }
Action2.java: package com.suo.actions; import com.opensymphony.xwork2.ActionSupport; public class Action2 extends ActionSupport { private String username; private String password; private String myparam; public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getMyparam() { return myparam; } public void setMyparam(String myparam) { this.myparam = myparam; } public String execute() { System.out.println(username); System.out.println(password); System.out.println(myparam); return SUCCESS; } }
result.jsp: <body> username:<s:property value="username"/><br> password:<s:property value="password"/><br> myparam:<s:property value="myparam"/><br> <!-- 这里可以用标签得到的属性值,必须是在Action中有对应的set/get方法才可以 --> </body>
Das Obige ist eine detaillierte Einführung in die Parameterübergabe in struts2. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn).