隨筆-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鍵 閱讀(309) | 評(píng)論 (0)編輯 收藏
          僅列出標(biāo)題  
          主站蜘蛛池模板: 杨浦区| 高台县| 驻马店市| 临泉县| 鸡泽县| 冷水江市| 八宿县| 库车县| 华坪县| 临朐县| 股票| 弥勒县| 库尔勒市| 嘉定区| 巨野县| 宝鸡市| 瓮安县| 称多县| 和静县| 陕西省| 张掖市| 班玛县| 延庆县| 蓝田县| 平武县| 南康市| 天津市| 东源县| 肥东县| 灵寿县| 韶关市| 江阴市| 靖远县| 阳朔县| 壶关县| 分宜县| 钦州市| 镇康县| 昌都县| 嘉峪关市| 高尔夫|