Struts2配置文件中package属性namespace能否省略的问题

警告: 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即可。

具体是为什么不能省略 我就不清楚了 如果知道的课给我留言,谢谢


补充说明:Namespace详解:
a)namespace决定action的访问路径,默认为“”,可以接受所有路径的Action;
b)namespace可以写为/,或者/xxx,或者/xxx/yyy,对应action访问路径为/index.action,/xxx/index.action或者/xxx/yyy/index.action
c)namespace最好也用模块来进行命名


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章