隨筆-159  評論-114  文章-7  trackbacks-0
          轉:

          今天試著把大蝦寫的系統登錄模塊加到我們現有的模塊里來,他寫的時候因為有些試驗的成分,所以沒有按照我們項目的配置來寫,也沒有按照我們的模塊來劃分配置,加過來以后重新配置了模塊信息,結果居然無法正常運行。顯示錯誤:“cannot retrieve action mapping? 。廢了九牛二虎之力,都無法解決。web.xml、struts-config、模塊配置,一切看起來都無比的正常,但就是運行不了。真搞不清楚是哪里出了問題。還以為搞不定,晚上要加班了,誰知道,踏破鐵鞋無覓處,柳暗花明又一村,在google上搜索關鍵字"action mapping 找不到",第一個鏈接居然就是問題的答案!(還從來沒有只點一次就可以找到問題答案的經驗,所以興奮無比^O^)

          ??????? 總的來說,問題的原因就在于,struts是在第一次收到對action的請求(注意:不包括jsp的請求)時,提取這個請求的url的路徑信息,把相應模塊的mapping信息設置到請求中去。如果在進入一個模塊時,第一次訪問的是一個jsp頁面,而在這個jsp頁面中提交到該模塊的一個action,就會出現找不到action mapping的情況。這就是因為,在進到這個模塊時,訪問的是jsp,這個模塊的任何一個action都沒有被訪問到,所以struts的ActionServlet還沒有來得及把這個模塊的mapping設置到請求中,自然找不到該模塊的action。

          ??????? 因此,這就引出一個約定,就是系統中盡量避免對Jsp的直接訪問,如果要訪問也要通過action來forward。雖然看起來麻煩一點,但是安全性、健壯性都會有所提高。

          ??????? 關于以上提到的模塊mapping的設置原理,具體的文章在這里(不長),值得收藏:

          ??????? 原文鏈接:http://202.100.72.44/news/itschool/pro/pro44134.htm



          posted on 2006-04-19 18:27 北國狼人的BloG 閱讀(3668) 評論(2)  編輯  收藏 所屬分類: 達內學習總結

          評論:
          # re: Cannot retrieve mapping for action 之 問題解決 2007-08-21 14:13 | 燕赤霞
          說得好,頂!  回復  更多評論
            
          # re: Cannot retrieve mapping for action 之 問題解決 2010-04-19 09:57 | 你爹
          說的好個球,一點都沒有說清楚,看了更不懂,舉列直接說才是王道  回復  更多評論
            
          主站蜘蛛池模板: 政和县| 鹤庆县| 开远市| 盐亭县| 常州市| 罗江县| 门源| 马山县| 历史| 宁武县| 英吉沙县| 曲阳县| 竹北市| 容城县| 易门县| 秭归县| 和龙市| 农安县| 日土县| 庆元县| 贡山| 政和县| 宝鸡市| 五常市| 桐梓县| 宝坻区| 宁陵县| 瑞丽市| 阜新| 辽宁省| 德钦县| 云龙县| 泽库县| 耿马| 金湖县| 桐乡市| 莱阳市| 罗源县| 青州市| 通河县| 肥乡县|