Struts2学习笔记(9)-Result配置全局结果集

时间:2022-03-16 15:04:32

Result可以设定全局结果集,如:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<struts>
  <constant name="struts.devMode" value="true" />
  <package name="user" namespace="/user" extends="struts-default">
     
     
    <global-results>
      <result name="mainpage">/main.jsp</result>
    </global-results>
     
    <action name="index">
      <result>/index.jsp</result>
    </action>
     
    <action name="user" class="com.bjsxt.struts2.user.action.UserAction">
      <result>/user_success.jsp</result>
      <result name="error">/user_error.jsp</result>
    </action>   
  </package>
   
  <package name="admin" namespace="/admin" extends="user">
    <action name="admin" class="com.bjsxt.struts2.user.action.AdminAction">
      <result>/admin.jsp</result>
    </action>
  </package>
</struts>

其中

?
1
2
3
<global-results>
  <result name="mainpage">/main.jsp</result>
</global-results>

就是设定的全局结果集,在这种方式下,所有的user包内的result只要是返回“mainpage”,都会跳转到main.jsp页面,它用途很多,最常用的就是用户填写url错误时,跳转到主页或者是error页面。那么在其他包下如何也使用全局结果集呢?

如上面的

?
1
2
3
4
5
<package name="admin" namespace="/admin" extends="user">
  <action name="admin" class="com.bjsxt.struts2.user.action.AdminAction">
    <result>/admin.jsp</result>
  </action>
</package>

这个是包的继承关系,admin包继承自user包,所以他就具有了所有user包下的属性,这个非常好用,当我们有很多公共的页面需要显示时,可以用一个包作为这些包的父类包,把这些公共的result写到其中,其他包只需继承这个包即可。

以上就是Struts2中使用Result配置全局结果集的全部内容,希望能给大家一个参考,也希望大家多多支持服务器之家。