【web开发学习笔记】Structs2 Result学习笔记(三)带參数的结果集

时间:2021-04-22 16:18:09

Result学习笔记(三)带參数的结果集

第一部分:代码

//前端
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB18030" />
<title>Insert title here</title>
</head>
<body>
<ol>
<li><a href="user/user?type=1">传參数</a></li>
</ol>
</body>
</html>
//web.xml
<struts>
<constant name="struts.devMode" value="true" />
<package name="user" namespace="/user" extends="struts-default"> <action name="user" class="com.struts2.user.action.UserAction">
<result type="redirect">/user_success.jsp?t=${type}</result>
</action>
</package>
</struts>
//类包
package com.struts2.user.action;
import com.opensymphony.xwork2.ActionSupport;
public class UserAction extends ActionSupport {
private int type; public int getType() {
return type;
} public void setType(int type) {
this.type = type;
} @Override
public String execute() throws Exception {
return "success";
}
}
//展示
</head>
<body>
User Success!
from valuestack: <s:property value="t"/><br/>
from actioncontext: <s:property value="#parameters.t"/>
<s:debug></s:debug>
</body>
</html>

第二部分:分析

1.<li><a href="user/user?type=1">传參数</a></li>,链接訪问user命名空间里面的user action,并对action传递參数type = 1;
2.<package name="user" namespace="/user" extends="struts-default">
<action name="user" class="com.struts2.user.action.UserAction">
<result type="redirect">/user_success.jsp?t=${type}</result>
</action>
</package>
<result type="redirect">/user_success.jsp?t=${type}</result>

目的:

    跟据配置文件构造user action对象,并进行设置參数。由client发出请求后,由web.xml的配置文件构造UserAction对象时,请求中出传递的数值会传递到构造的对象中。注意:一次request仅仅有一个值栈.

    result要求<result type="redirect">/user_success.jsp?t=${type}</result>,要求重定向到到user_success.jsp,并要求去除

action中的type值。当中type="redirect"表示是client跳转,
3.from valuestack: <s:property value="t"/><br/>				//从值栈取值
from actioncontext: <s:property value="#parameters.t"/> <span style="white-space:pre"> </span>//从actioncontext取值