原来是Struts2.0的一个Bug

开始使用的是Struts2.06版本。在配置Struts.xml的时候,发现了一个问题:

struts.xml代码:

xml 代码
  1.         "http://struts.apache.org/dtds/struts-2.0.dtd">  
  2. <struts>  
  3.     <include file="struts-default.xml" />  
  4.     <package name="default" extends="struts-default">  
  5.           
  6.         <interceptors>  
  7.             <interceptor-stack name="strutsStack">  
  8.                 <interceptor-ref name="exception" />  
  9.                 <interceptor-ref name="alias" />  
  10.                 <interceptor-ref name="servlet-config" />  
  11.                 <interceptor-ref name="prepare" />  
  12.                 <interceptor-ref name="i18n" />  
  13.                 <interceptor-ref name="chain" />  
  14.                 <interceptor-ref name="debugging" />  
  15.                 <interceptor-ref name="profiling" />  
  16.                 <interceptor-ref name="scoped-model-driven" />  
  17.                 <interceptor-ref name="model-driven" />  
  18.                 <interceptor-ref name="fileUpload" />  
  19.                 <interceptor-ref name="checkbox" />  
  20.                 <interceptor-ref name="static-params" />  
  21.                 <interceptor-ref name="params" />  
  22.   
  23.                 <interceptor-ref name="validation">  
  24.                     <param name="excludeMethods">  
  25.                         input,back,cancel,browse   
  26.                     param>  
  27.                 interceptor-ref>  
  28.                 <interceptor-ref name="workflow">  
  29.                     <param name="excludeMethods">  
  30.                         input,back,cancel,browse   
  31.                     param>  
  32.                 interceptor-ref>  
  33.             interceptor-stack>  
  34.         interceptors>  
  35.           
  36.         <default-interceptor-ref name="strutsStack" />  
  37.     package>  
  38.   
  39.     <include file="struts_xml/user.xml" />  
  40.   
  41. struts>  

这是struts.xml所包含的代码。

xml 代码
  1.         "http://struts.apache.org/dtds/struts-2.0.dtd">  
  2. <struts>  
  3.   
  4.     <package name="user" extends="default">  
  5.           
  6.         <action name="userAction"  
  7.             class="com.leo.controller.UserController" method="userAction">  
  8.             <result name="success">a.jspresult>  
  9.             <result name="input">login.jspresult>  
  10.         action>  
  11.   
  12.         <action name="index" class="com.leo.controller.UserController"  
  13.             method="index">  
  14.             <result name="success">login.jspresult>  
  15.             <result name="input">login.jspresult>  
  16.         action>  
  17.   
  18.         <action name="login" class="com.leo.controller.UserController"  
  19.             method="login">  
  20.             <result name="success" type="redirect-action">  
  21.                 index.action   
  22.             result>  
  23.             <result name="input">login.jspresult>  
  24.         action>  
  25.   
  26.         <action name="logout" class="com.leo.controller.UserController"  
  27.             method="logout">  
  28.             <result name="success">login.jspresult>  
  29.             <result name="input">login.jspresult>  
  30.         action>  
  31.   
  32.     package>  
  33.   
  34. struts>  

这种“包”继承关系是合法的,但在struts2.06版本怎么也无法通过,控制台一直报错:Error building results for action ××× in namespace - action 。调试了很久,Webwork文档与书也翻了N遍,还是没有效果。最后实在没有办法了,换成Struts2.09包,竟然通过了。

大家可以试试,其实Struts2的包继承是非常有用的,很多全局拦截器的设置,Action的设置,以及Result-type等,都可以通过包继承来组织你的配置文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值