获取SSM项目中所有的URL

来源:互联网 发布:网络作家收入作假 编辑:程序博客网 时间:2024/05/16 19:02

1、在springmvc配置加上两个bean:

<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"/>      <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"/>  

2、在controller注入RequestMappingHandlerAdapter:

@AutowiredRequestMappingHandlerMapping requestMappingHandlerMapping;

3、controller添加mapping:

@RequestMapping("/index.action")    @ResponseBody    public Object index(HttpServletRequest request) {        List<HashMap<String, String>> urlList = new ArrayList<HashMap<String, String>>();        Map<RequestMappingInfo, HandlerMethod> map = requestMappingHandlerMapping.getHandlerMethods();        for (Map.Entry<RequestMappingInfo, HandlerMethod> m : map.entrySet()) {            HashMap<String, String> hashMap = new HashMap<String, String>();            RequestMappingInfo info = m.getKey();            HandlerMethod method = m.getValue();            PatternsRequestCondition p = info.getPatternsCondition();            for (String url : p.getPatterns()) {                hashMap.put("url", url);            }            hashMap.put("className", method.getMethod().getDeclaringClass().getName()); // 类名            hashMap.put("method", method.getMethod().getName()); // 方法名            RequestMethodsRequestCondition methodsCondition = info.getMethodsCondition();            String type = methodsCondition.toString();            if (type != null && type.startsWith("[") && type.endsWith("]")) {                type = type.substring(1, type.length() - 1);                hashMap.put("type", type); // 方法名            }            urlList.add(hashMap);        }        HashMap<String, Object> result = new HashMap<String, Object>();        result.put("str", urlList);        return result;    }

注:如果实例化RequestMappingHandlerMapping出错,大概是你项目不仅仅只有一个实例,此时请为你写的bean设置id