国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

Spring MultiAction的簡單示例

2019-11-18 12:58:26
字體:
來源:轉載
供稿:網友

  先是一個簡單的eclipse的工程目錄結構,

Spring MultiAction的簡單示例


  簡單介紹我自己寫的MethodNameResolver和UrlHandlerMapping


  PathMethodNameResolver,根據url取得調用MultiAction的方法名稱,比如/user/userAdd.action,就可以調用到id為user的類的userAdd的方法來處理action


package com.zgc.test.multiaction;
import javax.servlet.http.HttpServletRequest;
import org.sPRingframework.web.servlet.mvc.multiaction.MethodNameResolver;
import org.springframework.web.servlet.mvc.multiaction.NoSUChRequestHandlingMethodException;
public class PathMethodNameResolver implements MethodNameResolver {
 public String getHandlerMethodName(HttpServletRequest request)
   throws NoSuchRequestHandlingMethodException {
  String uri=request.getRequestURI();
  int begin = uri.lastIndexOf(’/’);
  if (begin == -1) {
   begin = 0;
  }
  else {
   begin++;
  }
  int end;
  if (uri.indexOf(";") != -1) {
   end = uri.indexOf(";");
  }
  else if (uri.indexOf("?") != -1) {
   end = uri.indexOf("?");
  }
  else {
   end = uri.length();
  }
  String fileName = uri.substring(begin, end);
  if (fileName.indexOf(".") != -1) {
   fileName = fileName.substring(0, fileName.lastIndexOf("."));
  }
  return fileName;
 }
}


  DynamicUrlHandlerMapping,考慮到有的時候有非凡需求,所以就最后一個來指定方法,前面的來構成beanname,如/admin/user/viewUser.action,就可以查找到adminUser這個id的類,然后調用viewUser這個方法。用到了lazy load而不是一開始就把所有的bean都放到工廠,有利于服務的啟動速度(最近老是覺得這個煩),也可以不實例化一輩子都用不到的類(這種類可以刪除了)


package com.zgc.test.multiaction;
import org.apache.commons.lang.StringUtils;
import org.springframework.web.servlet.handler.AbstractUrlHandlerMapping;
public class DynamicUrlHandlerMapping extends AbstractUrlHandlerMapping {
 protected Object lookupHandler(String urlPath) {
  Object handler = super.lookupHandler(urlPath);
  if (handler == null) {
   String[] paths=urlPath.split("/");
   String beanName="";
   for(int i=0;i<paths.length-1;i++){
    beanName+=StringUtils.capitalize( paths[i]);
   }
   registerHandler(urlPath,StringUtils.uncapitalize(beanName));
   handler=super.lookupHandler(urlPath);
  }
  return handler;
 }
}




發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 滕州市| 鄂温| 塔河县| 华阴市| 福海县| 盘山县| 个旧市| 安多县| 莱阳市| 当涂县| 孝感市| 电白县| 江安县| 恩施市| 惠州市| 凉城县| 哈巴河县| 锡林郭勒盟| 威远县| 那坡县| 宁津县| 交城县| 黔南| 丰都县| 长子县| 浮梁县| 松潘县| 阳新县| 若尔盖县| 德昌县| 开化县| 淮南市| 沙雅县| 上思县| 杭锦旗| 禄丰县| 桃园县| 南溪县| 资阳市| 乐陵市| 柳江县|