您的位置:首页 > 移动开发

获取SpringMVC中所有RequestMapping映射URL地址

2016-10-24 10:24 531 查看
废话不多说,直接上代码:
public String init(HttpServletRequest request, HttpServletResponse response){
List<String> uList = new ArrayList<String>();//存储所有url集合
WebApplicationContext wac = (WebApplicationContext) request.getAttribute(DispatcherServlet.WEB_APPLICATION_CONTEXT_ATTRIBUTE);//获取上下文对象
RequestMappingHandlerMapping bean = wac.getBean(RequestMappingHandlerMapping.class);//通过上下文对象获取RequestMappingHandlerMapping实例对象
Map<RequestMappingInfo, HandlerMethod> handlerMethods = bean.getHandlerMethods();
for (RequestMappingInfo rmi : handlerMethods.keySet()) {
PatternsRequestCondition prc = rmi.getPatternsCondition();
Set<String> patterns = prc.getPatterns();
for (String uStr : patterns) {
uList.add(uStr);
}
}
}
通过以上代码即可获取SpringMVC映射地址及其其他方法相关属性。

万变不离其宗,亦或是通过以下方式获取。
public void init(HttpServletRequest request,HttpServletResponse response) {
List<String> uList = new ArrayList<String>();//存储所有url集合
WebApplicationContext wac = (WebApplicationContext) request.getAttribute(DispatcherServlet.WEB_APPLICATION_CONTEXT_ATTRIBUTE);//获取上下文对象
Map<String, HandlerMapping> requestMappings = BeanFactoryUtils.beansOfTypeIncludingAncestors(wac, HandlerMapping.class, true, false);
for(HandlerMapping handlerMapping : requestMappings.values()) {
if(handlerMapping instanceof RequestMappingHandlerMapping) {
RequestMappingHandlerMapping rmhm = (RequestMappingHandlerMapping) handlerMapping;
Map<RequestMappingInfo, HandlerMethod> handlerMethods = rmhm.getHandlerMethods();
for(RequestMappingInfo rmi : handlerMethods.keySet()) {
PatternsRequestCondition prc = rmi.getPatternsCondition();
Set<String> patterns = prc.getPatterns();
for (String uStr : patterns)
uList.add(uStr);
}
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息