이 문제는 일반적인 jsp 프로그램을 작성할 때 양식, 요청, 링크 등을 통해 매개변수를 전달하기가 쉽다는 점을 항상 의아해했습니다. 그러나 struts2에서는 작성하는 모든 위치에서 매개변수를 볼 수 없습니다. 어떤 요청이나 응답이 오면 매개변수를 전달하는 방법을 모르겠습니다. 오늘은 struts2에서 매개변수 전달에 대해 배웠고 마침내 의심을 해결했지만 아직 명확하지 않으며 앞으로 탐구해야 합니다.
여기서 struts2의 Action 간에 매개변수를 전달하는 방법에 대해 이야기하겠습니다. Action 간의 매개변수 전송은 struts.xml 파일에서 구성되며, 전달된 매개변수의 이름과 값을 param 태그를 사용하여 지정합니다. 단, 이 매개변수 이름은 Action과 일치해야 합니다. 속성 이름에 해당합니다. 예를 들어 설명해 보겠습니다.
예: 사용자 이름과 비밀번호라는 두 가지 요소가 있는 Login.jsp 페이지가 있습니다. 데이터가 Action1에 제출된 다음 Action2로 전달되거나 리디렉션되도록 요청합니다. Action2의 프로세스에서는 사용자 이름과 비밀번호라는 두 매개변수와 사용자 정의된 상수 매개변수가 Action2에 전달되어야 합니다. Action2는 매개변수를 수신하고 결과 페이지에 매개변수를 표시합니다: result.jsp
코드:
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>
위는 매개변수 전달에 대한 자세한 소개입니다. struts2 관련 내용은 PHP 중국어 홈페이지(www.php.cn)를 참고해주세요!