ice world

          There is nothing too difficult if you put your heart into it.
          posts - 104, comments - 103, trackbacks - 0, articles - 0

          Cannot retrieve mapping for action

          Posted on 2011-04-16 02:23 IceWee 閱讀(1519) 評論(0)  編輯  收藏 所屬分類: Strut1
          想必用過Struts的朋友都遇到過這個異常吧!沒遇到的也可能,只能說你很強或運氣不錯。

          我遇到該異常的解釋是我不強,用Struts不是很多,或者說根本不熟練,對一些知識了解得并不深,僅僅皮毛而已,所以這個異常困擾了我一天的時間。言歸正傳。

          從字面上翻譯就是“不能找到映射action”,當出現這個異常的時候,肯定是在請求某個action,而根據給定的路徑卻沒找到,所以頁面啪嚓拋出一個異常,滿滿一頁。

          此時你首先要檢查的是請求的路徑是否書寫正確,與struts-config.xml中配置的路徑仔細的核對,發現完全正確。真的完全吻合么?恐怕只有后面的“/XXAction”完全相同吧!所謂的完全正確是指由根目錄到struts配置的path完全一致,如“http://localhost:8080/web/data/login.do”,你的struts配置文件中配置的可能是path="/data/login",那么你如此訪問肯定是正確的,只怕你忘記了data這個渺小的目錄的存在,遺忘請補齊。這種情況的出現往往是做項目的時候,小組都分區分模塊,每個人都有自己定義的目錄,在web.xml中配置struts,如:

          <servlet>
              
          <servlet-name>strutsAction</servlet-name>
              
          <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
              
          <init-param>
                  
          <param-name>config/prms/data</param-name>
                  
          <param-value>/WEB-INF/prms/struts-config-data.xml</param-value>
              
          </init-param>
          </servlet>

           

          那么在你訪問struts資源的時候千萬不要忘記上面配置的路徑

          下面說說我遇到這個異常的原因吧!我直接訪問服務器上的資源,即xx.jsp,如果路徑寫正確,這是沒問題的,但是頁面上卻拋出了這個異常,仔細的檢查發現,頁面form的action寫著“/login.do”,頁面所在路徑與“/login.do”組合后的路徑并不是action配置的路徑,所以根本就找不到action資源,只能拋出異常。

          前輩們都建議不要直接訪問服務器固定資源,如果你偏要訪問那個jsp也行,使用Struts提供的ForwardAction即可,既不會出現上面的異常,又沒有直接訪問服務器資源,兩全其美。

          主站蜘蛛池模板: 霞浦县| 贞丰县| 双辽市| 江门市| 青龙| 宁安市| 岢岚县| 濮阳市| 白沙| 沅江市| 浦城县| 西林县| 厦门市| 澳门| 池州市| 盐源县| 金堂县| 天等县| 惠安县| 广宁县| 崇明县| 天门市| 贡嘎县| 东乡| 固始县| 三明市| 福建省| 抚松县| 河南省| 光山县| 长葛市| 商城县| 高安市| 巩义市| 朔州市| 北票市| 沙雅县| 德庆县| 凤台县| 治多县| 武宣县|