獲取SpringMVC中所有RequestMapping對映URL地址
阿新 • • 發佈:2019-02-13
廢話不多說,直接上程式碼:
萬變不離其宗,亦或是通過以下方式獲取。
通過以上程式碼即可獲取SpringMVC對映地址及其其他方法相關屬性。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); } } }
萬變不離其宗,亦或是通過以下方式獲取。
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); } } } }