在Myeclipse8.5中新建了一个测试项目,本来是想测试result-type chain的使用结果,结果就是报错:
警告: Could not find action or result
No result defined for action com.struts2.Action2 and result success
仔细检查配置文件,
<struts>
<package name="default" extends="struts-default" >
<action name="action0" >
<result type="chain">action2</result>
</action>
<action name="action2" class="com.struts2.Action2">
<result name="success">/reg_success.jsp</result>
<result name="input">/reg.jsp</result>
</action>
</package>
</struts>
没有写错,后经同学帮忙,发现没有在 <package name="default" extends="struts-default" >配置namespace属性,于是写上之后就对了。
但是namespace决定了action的访问路径,默认为“”,可以接受所有路径的action。这么说来,
namespace是可以省略不写的,但是这里为什么会出错呢?!
经测试发现,原来建项目时,我用MyEclipse8.5自带的Struts2的核心libraries。把它换成自己建的Struts2所必需的Jar库,再运行就没有错了。
具体原因是MyEclipse8.5自带的Struts2的核心libraries不支持省略namespace,这时记得加上namespace即可。
第一次发blog,高兴下!!呵呵~
a)namespace决定action的访问路径,默认为“”,可以接受所有路径的Action;
b)namespace可以写为/,或者/xxx,或者/xxx/yyy,对应action访问路径为/index.action,/xxx/index.action或者/xxx/yyy/index.action
c)namespace最好也用模块来进行命名