转自:https://blog.csdn.net/u013161278/article/details/41855273

如果我们所有的action均有可能跳到相同的页面,则不妨使用全局result。为了方便引用我们专门建立一个package来存放公共的result。在会用到个全局的跳转时,只需要把继承自这个公共的package即可。

建立公共包,代码如下:

<package name="pubResult" extends="struts-default" abstract="true">

       <global-results>

           <result name="error">/error.jsp</result>

       </global-results>

</package>

由于它下面没的action配置,所以我们可以像默认的struts-default 包一样,声明abstract=true,这样声明表示此packgage下不会有action,它一般是用来让别的package继承。随后再在要用到 全局result中引用这个公共的package。代码如下:

<package name="testGlobal" extends="pubResult" >

    <action name="error" class="com.asm.ErrorAction"></action>

    <action name="error2" class="com.asm.Error2Action"></action>

</package>这样操作相当于把全局的result加到了此package下的所有action中去。
 
 
struts.xml
 1 <?xml version="1.0" encoding="GBK"?>  
 2 <!-- 指定Struts 2配置文件的DTD信息 -->  
 3 <!DOCTYPE struts PUBLIC  
 4     "-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN"  
 5     "http://struts.apache.org/dtds/struts-2.1.7.dtd">  
 6     
 7   <!-- Struts 2配置文件的根元素 -->  
 8  <struts>
 9      <!-- 配置了系列常量 -->
10       <constant name="struts.i18n.encoding" value="GBK"/>     
11     <constant name="struts.devMode" value="true"/>   
12     
13     <package name="shop-default" abstract="true" extends="struts-default">
14         <global-results>
15             <!-- 错误页面 -->
16             <result name="error">/show_error.jsp</result>
17             <!-- 程序主页面 -->
18             <result name="index" type="redirectAction">index</result>
19             <!-- 后台管理主页面 -->
20             <result name="manager">/main.jsp</result>
21             <!--会员注册 -->
22             <result name="reg">/WEB-INF/pages/user/customer_reg.jsp</result>
23             <!--会员登录-->
24             <result name="customerLogin">/WEB-INF/pages/user/customer_login.jsp</result>
25             <!--管理员登录-->
26             <result name="userLogin">/WEB-INF/pages/admin/user/user_login.jsp</result>
27         </global-results>
28         <global-exception-mappings>
29             <exception-mapping result="error" exception="com.lyq.util.AppException"></exception-mapping>
30         </global-exception-mappings>
31     </package>
32     
33     
34     <package name="xqh" extends="shop-default">
35         <!-- 定义一个拦截器 -->
36         <interceptors>
37             <interceptor name="authority" class="com.xqh.interpector.LoginInterceptor">
38             </interceptor>
39             <interceptor-stack name="mydefault">
40                 <interceptor-ref name="defaultStack"></interceptor-ref>
41                 <interceptor-ref name="authority"></interceptor-ref>
42             </interceptor-stack>
43         </interceptors>
44     
45         <!-- 定义处理用户请求的Action,指定该Action的实现类-->
46         <action name="registPro" class="com.xqh.action.RegistAction">
47             <result name="error">/error.jsp</result>
48             <result name="success">/welcome.jsp</result>
49         </action>
50         
51         <action name="showPro" class="com.xqh.action.ShowAction">  
52             <!-- 使用此拦截器 -->  
53             <interceptor-ref name="mydefault" />
54             <result name="login">/login.jsp</result>  
55             <result name="success">/show.jsp</result>  
56         </action>  
57         
58         <!-- 让用户直接访问该应用时列出所有视图页面 -->
59         <action name="*">
60             <result>/{1}.jsp</result>
61         </action>
62     </package>  
63  </struts>

 

posted on 2016-08-26 14:34  Sharpest  阅读(441)  评论(0编辑  收藏  举报