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最好也用模塊來進行命名


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