<package>是用來解決重名的問題,例如當系統的前臺和后臺都有一個action名叫test,這時就需要用package來區分。前臺<package name="front">后臺<package name="backed">但是怎樣訪問呢?如果,兩個package的namespace都是/,訪問test.action只能訪問到第二個package中的action,第一個訪問不到。怎么辦???如果兩個package設置不同的namespace的話,那么package的name屬性不是白設置了嗎,沒意義了啊,倒不如是相同的呢!求講解!
2 回答

有只小跳蛙
TA貢獻1824條經驗 獲得超8個贊
首先更正一點,struts配置文件中的package name屬性不是解決重名問題的,而是用來實現繼承的,namespace才是用來解決重名的,前臺和后臺可以這樣分<package name="front" namespace="/front" extends="default"> <package name="back" namespace="/back" extends="default">,這樣在兩個包里都有test Action時在url地址中用/front/test或/back/test就能區分開了,別外繼承時用extends="front"就是繼承自第一個package(默認繼承是default);若是第一個package里面配的有公共的結果集或攔截器,繼承者也可以用(當然也可以用action,注意:子包里的action不能與父包中的重名)

慕標5832272
TA貢獻1966條經驗 獲得超4個贊
<package name ="front" namespace="/front" extends="forecast-global >
<package name ="backed" namespace="/backed" extends="forecast-global>
你的namespace不用/; 在配置一下你的struts.xml;把前后臺的請求 區分開不就可以了嗎!
添加回答
舉報
0/150
提交
取消