struts2 namespace問題

32647908發表於2008-01-25

最近一個專案我頁面和後臺全都包了!頁面邏輯規劃我也根據不同性質的頁面分了很多層次,因為這個專案
用的架構是struts2+spring2+hibernate3.所以在規劃aciton的時候必然的用到了struts2的package的namespace
屬性。但當我測試的時候發現,struts2粗暴的干涉到了我的頁面邏輯。舉個demo吧
我定義了兩個包
1
<package name="user" extends="json-default" namespace="/first">
<action name="china">
<result>test1/first.jsp</result>
</package>
2
<package name="admin" extends="json-default" namespace="/second">
<action name="china">
<result>test2/second.jsp</result>
</package>
然後我在根目錄下寫了個index.jsp 內容<jsp:forward page=test1/first.jsp/>
first.jsp中的內容
<a href="second/second.action">測試1</a>

注意:這時候出現了這樣一個情況測試1的URL 是 :http://localhost:8080/qd/first/second.acion
理所當然There is no Action mapped for namespace !
現在怎麼辦呢?這怎麼辦?是我用struts2方法不對。我覺得是。還請知道的朋友確定下!
但我必須要滿足我的需求,我做的折中的辦法是不用namespace。把struts.xml分開。不同的模組定義一個
xml檔案,最後在struts.xml裡簡單的呼叫下。但有點不甘心,因為這個有辦法可以解決的。但因專案時間緊
我只好做出這樣的取捨,覺得這樣除了不能用同名的aciton之外也沒什麼不好,暫時就這樣辦了。

本來還有話,今天時間不夠了!先發上來這些,供和朋友們討論下。
banq兄,有話直說啊!現在還跟不上你的思想,有點牴觸你的某些說法和思想,但喜歡你的坦白直率,所以有什麼
想法先往你的論壇跑!-_-
<a href="<s:url action="shopadmin/shopadmin.action"/>">測試2</a>

此時我在first下定義的包中的結果對應的頁面的連線全部為 projectName/first/xxx了,這樣我頁面中的
所有連線都失效錯誤引發系統異常了,也許這是我沒有正確使用struts2的結果,但這也是我的一個小需求嗎。
我現在折中的辦法是,一個包下面就是一個模組,如果這個頁面中用到別的包的下面的aciton的時候。


我的一個”收集箱“ http://hi.baidu.com/%CE%A2%D6%D0%BF%C6%BC%BC
一個”心得地“http://hi.baidu.com/32647908

相關文章