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

废话不多说,直接上代码:
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);
			}
		}
	}
}

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值