您的位置:首页 > 编程语言 > Java开发

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

2014-05-29 11:53 459 查看
出处://blog.sina.com.cn/s/blog_850822020100u5ct.html

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

Multiple annotations found at this line:

- Undefinedactionnamespace

parameter

- UndefinedactionName parameter

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

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

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

namespace -used to determine which namespace the Action is in that we'rechaining. If namespace is null, this defaults to the currentnamespace

method -used to specify another method on target action to be invoked. Ifnull, this defaults to execute method

skipActions- (optional) the list of comma separated action names for theactions 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)的问题了吧!

有多的不对的地方还请大家多多指教!!

解决方法二:把chain和redirectAction的首字母大写,错误就没了...

解决方法三:在使用dynamic result时也遇到类似的问题,提示报错却可以成功运行,将preference中的validation中的struts2 validator的build项的勾去掉就能把这些问题一起解决了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐