struts2.xml中使用chain和redirectAction这两个类型结果(type-result)时,报检查错误(validation)

本文章非原创,本文章抄录于http://blog.sina.com.cn/s/blog_850822020100u5ct.html

MyEclipse办法为9.0M1
当在struts.xml中使用chain和redirectAction这两个类型结果的时候,会报检查错误!

Multiple annotations found at this line:

-Undefined actionnamespace 
parameter 
- Undefined actionName parameter 

相信不少朋友会被这个错误折腾的很难受吧,现在说下解决方案,在百度和google上搜了很久,国外网站也看了下,半天都没找到解决方法,后来无意中在apache的网站上看到了struts2chain的使用说明,仔细读了一下,就想到了一个办法,或许可以解决,于是就测试了一下,发现问题完全解决了,现在来说下一我的解决方法。 

chain结果类型有4个属性,分别是: 

actionName (default) - the name of the action that will be chainedto 

namespace - used to determine which namespace the Action is in thatwe're chaining. If namespace is null, this defaults to the currentnamespace 

method - used to specify another method on target action to beinvoked. If null, this defaults to execute method 

skipActions - (optional) the list of comma separated action namesfor the actions that could be chained to 

其中actionName和namespace是必不可少的,否则就会报错。所以我在项目中就写成如下形式: 
<package name="struts" extends="struts-default"namespace="/bg"> 
<action name="login"class="loginAction"> 
<result type="chain"> 
<paramname="actionName">index</param> 
<paramname="namespace">/bg</param> 
</result> 
</action> 
</package> 

但是这么写就有一个问题,我的项目比较简单,不想使用命名空间,于是我就想怎么解决这个问题呢,在看官方文档的时候我发现这么一句话: 
A root namespace ("/") is also supported. The root is the namespacewhen a request directly under the context path is received. As withother namespaces, it will fall back to the default ("") namespaceif a local action is not found. 

于是我就想,用"/"代替"/bg"不就可以解决问题了么。然后就把代码写成如下形式 
<package name="struts" extends="struts-default"namespace="/"> 
<action name="login"class="loginAction"> 
<result type="chain"> 
<paramname="actionName">index</param> 
<paramname="namespace">/</param> 
</result> 
</action> 
</package> 

好了说到这里我想大家也都明白了该怎么解决chain和redirectAction这两个类型结果(type-result)报检查错误(validation)的问题了吧! 
有多的不对的地方还请大家多多指教!! 


本文章非原创,本文章抄录于http://blog.sina.com.cn/s/blog_850822020100u5ct.html

----------------------------------------------------------------------------------------

以下是我的测试代码:

<struts>

<!-- 第一步,配命名空间 namespace="/" -->

<package name="globle" extends="struts-default" namespace="/">

<!-- 自定义result-type -->

<result-types>
           <result-type name="alert" class="com.pk.web.action.AertAction">         

           </result-type>
</result-types>

<!-- chains Action -->

<action name="loginAction" class="com.pk.web.action.LoginAction1">
           <interceptor-ref name="time"></interceptor-ref>
           <interceptor-ref name="defaultStack"></interceptor-ref>
           <result>/success.jsp</result>
           <result name="input" type="chains">
               <param name="actionName">emailAction</param>
               <param name="namespace">/</param>
           </result>
       </action>
       
       <action name="emailAction" class="com.pk.web.action.EmailAction">
           <result name="success" type="alert">
               <param name="location">/email.jsp</param>
               <param name="message">登陆成功</param>
           </result>
       </action>    

   </package>
</struts>

测试图

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值