Ce problème m'a toujours intrigué. Lors de l'écriture de programmes jsp ordinaires, il est facile de transmettre des paramètres via des formulaires, des requêtes, des liens, etc. Cependant, dans struts2, je ne peux pas les voir partout où j'écris. à toute demande ou réponse, je ne sais pas comment transmettre des paramètres. Aujourd'hui, j'ai appris le passage de paramètres dans struts2 et j'ai finalement résolu le doute, mais ce n'est pas encore très clair et doit être exploré à l'avenir.
Permettez-moi de parler ici de la façon de transmettre des paramètres entre les actions dans struts2. Le transfert de paramètres entre les actions est configuré dans le fichier struts.xml. Dans l'élément result, utilisez la balise param pour spécifier le nom et la valeur du paramètre passé. Cependant, ce nom de paramètre n'est pas écrit avec désinvolture. Il doit être cohérent avec l'action. à transmettre correspondant au nom de l'attribut. Illustrons avec un exemple.
Exemple : Il existe une page Login.jsp avec deux éléments : le nom d'utilisateur et le mot de passe. Les données sont soumises à Action1 puis demandent à être transférées ou redirigées vers Action2. Dans le processus d'Action2, les deux paramètres du nom d'utilisateur et du mot de passe, ainsi qu'un paramètre constant personnalisé, doivent être transmis à Action2. Action2 reçoit les paramètres et affiche les paramètres sur une page de résultats : 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>
Ce qui précède est l'introduction détaillée du passage de paramètres dans struts2. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (www.php.cn) !