一、 常用四种type
1. dispatcher(默认):服务器端跳转—— jsp:forward 跳转到一个 jsp 文件去,浏览器不知道它所请求的具体资源来源,在客户端浏览器地址栏中不会显示出转向后的地址,即 action 地址。
2. redirect:客户端向服务器发起请求,浏览器会得到返回的跳转地址,并重新发送请求链接,浏览器地址栏看到的是跳转后的链接地址,即jsp地址。
3.chain: 跳转到action,不加斜杠/ 。如果在另外一个包中,格式为package/action。
4. redirectAction
![图片](https://i-blog.csdnimg.cn/blog_migrate/dc6593222e02cb4f3078785f41b583b7.png)
二、全局结果集:多个action共享一个result
若想使用另外一个package中的result,使用extends
<package name="user"......extends="struts-default">
<global-results>
<result name="mainpage">/main.jsp</result>
</global-results>
.......
</package>
<package name="admin"......extends="user">(继承user这个包的所有配置)
三、动态结果DynamicResult(了解)
<result>${r}</result> (动态确定属性String r的值,存储的是result的location )
<s:property value="r"/> (读取value stack 的内容)
四、带参数的结果
一次请求request只有一个value stack , 此时服务器端forward跳转的actions共享一个值栈,不需要传参数。
只有在redirect客户端跳转时才需要传参数。
<result type="redirect">/user_success.jsp?t=${type}</result>
<s: property value ="#parameters.t"/> (从stack context取值)
1. dispatcher(默认):服务器端跳转—— jsp:forward 跳转到一个 jsp 文件去,浏览器不知道它所请求的具体资源来源,在客户端浏览器地址栏中不会显示出转向后的地址,即 action 地址。
2. redirect:客户端向服务器发起请求,浏览器会得到返回的跳转地址,并重新发送请求链接,浏览器地址栏看到的是跳转后的链接地址,即jsp地址。
3.chain: 跳转到action,不加斜杠/ 。如果在另外一个包中,格式为package/action。
4. redirectAction
![图片](https://i-blog.csdnimg.cn/blog_migrate/dc6593222e02cb4f3078785f41b583b7.png)
二、全局结果集:多个action共享一个result
若想使用另外一个package中的result,使用extends
<package name="user"......extends="struts-default">
<global-results>
<result name="mainpage">/main.jsp</result>
</global-results>
.......
</package>
<package name="admin"......extends="user">(继承user这个包的所有配置)
三、动态结果DynamicResult(了解)
<result>${r}</result> (动态确定属性String r的值,存储的是result的location )
<s:property value="r"/> (读取value stack 的内容)
四、带参数的结果
一次请求request只有一个value stack , 此时服务器端forward跳转的actions共享一个值栈,不需要传参数。
只有在redirect客户端跳转时才需要传参数。
<result type="redirect">/user_success.jsp?t=${type}</result>
<s: property value ="#parameters.t"/> (从stack context取值)