隨筆-2  評(píng)論-0  文章-0  trackbacks-0
            2009年12月15日
          /**
           * @author yzy
           * 作為BaseAction 供其他Action 繼承, 其他Action 不需要寫execute(mapping, form, request, response)
           * 方法,直接寫與mapping.getParameter()[struts-xml 的<action> 中parameter] 對(duì)應(yīng)的 方法名(mapping, form, request, response)方法;
           *
           * 或者mapping.getPath()[struts-xml 的<action> 中path] 固定寫為 method_0,直接寫與mapping.getParameter()對(duì)應(yīng)的
           * 方法名(String ... str)方法
           */

          @Override
           public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) {
                    actionForward = mapping.findForward("forward");
            
                    if("method_0".equals(mapping.getPath())){
                             method_0(mapping, form, request, response);
                    } else {
               
                    try {
                  // 正常Struts 方法名(ActionMapping mapping, ActionForm form, 
                  //     HttpServletRequest request, HttpServletResponse response)

                              this.getClass().getMethod(mapping.getParameter(), ActionMapping.class, ActionForm.class, 
                                        HttpServletRequest.class, HttpServletResponse.class).invoke(this, mapping, form, request, response);
                     } catch (Exception e) {
                              System.err.println("no serach method");
                     }
            }
            
                    return actionForward;
           }
           /*
            * 方法名(String ... str)
            */
           private void method_0(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) {
                    String param = request.getQueryString();
                    String[] params = param.split("&");
                    int len = params.length;
                    Class[] classes = new Class[len - 1];
                    for(int i = 0; i < len; i++){
                             classes[i] = String.class;
                    }
            
                    try {
                             this.getClass().getMethod(mapping.getParameter(), classes).invoke(this, params);
                    } catch (Exception e) {
                             System.err.println("no serach method"); // str[] 可能參數(shù)個(gè)數(shù)不一致
                    }
            
           }
          posted @ 2009-12-15 19:52 秒速4鍵 閱讀(310) | 評(píng)論 (0)編輯 收藏
          僅列出標(biāo)題  
          主站蜘蛛池模板: 韶关市| 新邵县| 彭山县| 辛集市| 乡宁县| 鄂温| 阳东县| 耿马| 青冈县| 廉江市| 黄陵县| 北京市| 高清| 法库县| 汤阴县| 永丰县| 淮南市| 郑州市| 绥宁县| 岱山县| 长治市| 赞皇县| 武定县| 资中县| 成武县| 邢台市| 阳朔县| 房产| 浦北县| 玛纳斯县| 玉树县| 柘荣县| 夏河县| 九江县| 仁化县| 连州市| 云龙县| 山丹县| 宽城| 宽甸| 岳普湖县|