posts - 10, comments - 9, trackbacks - 0, articles - 17

          在使用DispatchAction時出現(xiàn)了這個問題,從這句話分析,就是沒有在指定的類中,找到對應的方法。

          先說結(jié)論: 在Action中定義的方法(要在參數(shù)中使用的方法),參數(shù)一定要固定為
          (ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response )

          --------------------------------
          這種錯誤,一般在保證所有路徑的拼寫都正確的情況下應該就能避免,

          那接著分析一下,struts是如何從jsp一步步找到這個方法呢?


          1 頁面上 action的路徑,以及對應的struts配置文件中定義的parameter的參數(shù)名(我這叫method)屬性值,這個屬性值應對應著 Action類的方法名。

          2 確認了以上路徑都正確的情況下,考慮到DispatchAction對應“方法”的方式,發(fā)現(xiàn)原來是方法多了一個參數(shù)。

          順便看了下DispatchAction源代碼,看到里面找方法的時候,用的是
           method = clazz.getMethod(name, types);
          其中
          clazz = getClass();
          types = (new Class[] {
                      org.apache.struts.action.ActionMapping.class,  org.apache.struts.action.ActionForm.class,  javax.servlet.http.HttpServletRequest.class,  javax.servlet.http.HttpServletResponse.class
                  });

          就是說,DispatchAction只會將參數(shù)固定為以上4中的函數(shù)作為控制器方法使用。

          Feedback

          # re: Action[/myaction] does not contain specified method (check logs)  回復  更多評論   

          2013-03-25 13:37 by sf
          我都改過了 還是不行呢

          # re: Action[/myaction] does not contain specified method (check logs)  回復  更多評論   

          2016-04-20 11:32 by 41
          241657

          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導航:
           
          主站蜘蛛池模板: 武平县| 白城市| 鄂州市| 巴青县| 高台县| 阳东县| 左权县| 岑溪市| 三河市| 新郑市| 南和县| 鱼台县| 堆龙德庆县| 雷山县| 乌兰察布市| 毕节市| 汉源县| 汶川县| 阳春市| 济宁市| 和林格尔县| 吴江市| 赣榆县| 陕西省| 驻马店市| 新泰市| 荃湾区| 无棣县| 喀喇沁旗| 锦州市| 武城县| 长武县| 赤壁市| 松潘县| 灵武市| 金山区| 上高县| 将乐县| 比如县| 自治县| 门源|