仔細檢查配置文件,
後來發現沒有在 <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最好也用模塊來進行命名