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即可,既不會出現上面的異常,又沒有直接訪問服務器資源,兩全其美。

          主站蜘蛛池模板: 洪泽县| 武隆县| 广河县| 潞城市| 定边县| 舟曲县| 阿克苏市| 盘锦市| 桐柏县| 丹巴县| 巫山县| 仙居县| 清流县| 盘锦市| 嘉峪关市| 荆门市| 东丰县| 儋州市| 赣榆县| 加查县| 巨野县| 潞西市| 安国市| 潜江市| 浪卡子县| 宿州市| 远安县| 墨脱县| 岳普湖县| 仙居县| 上饶县| 苍山县| 岑巩县| 武冈市| 大埔县| 平和县| 太仓市| 定兴县| 哈巴河县| 施秉县| 伊川县|