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

          在使用DispatchAction時(shí)出現(xiàn)了這個(gè)問(wèn)題,從這句話分析,就是沒(méi)有在指定的類中,找到對(duì)應(yīng)的方法。

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

          --------------------------------
          這種錯(cuò)誤,一般在保證所有路徑的拼寫(xiě)都正確的情況下應(yīng)該就能避免,

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


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

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

          順便看了下DispatchAction源代碼,看到里面找方法的時(shí)候,用的是
           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
                  });

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

          Feedback

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

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

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

          2016-04-20 11:32 by 41
          241657

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


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 英德市| 达日县| 上犹县| 舟曲县| 云南省| 金堂县| 盐亭县| 湖州市| 师宗县| 谢通门县| 牡丹江市| 和田市| 北碚区| 石河子市| 富民县| 兴海县| 徐州市| 建湖县| 桂阳县| 临西县| 桂平市| 唐海县| 行唐县| 连山| 武安市| 峨眉山市| 永平县| 长阳| 牟定县| 那坡县| 孙吴县| 马边| 三穗县| 隆尧县| 宁河县| 大兴区| 宜宾市| 黔西| 抚顺县| 凭祥市| 平谷区|