如何在拦截器中获取url路径里面@PathVariable的参数值

这篇文章主要介绍了如何在拦截器中获取url路径里面@PathVariable的参数值,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

在拦截器中获取url路径里@PathVariable参数值

解决办法

 Map pathVariables = (Map) request.getAttribute( HandlerMapping.URI_TEMPLATE_VARIABLES_ATTRIBUTE); String classId = (String)pathVariables.get("classId");

示例接口

 // 获取某个班级下面的学生列表 @RequestMapping("/classes/{classId}/students") public String list(@PathVariable String classId){ return "学生列表"; }

完整示例

 package com.example.demo; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.web.servlet.HandlerInterceptor; import org.springframework.web.servlet.HandlerMapping; import org.springframework.web.servlet.ModelAndView; import java.util.Map; public class SpringMVCInterceptor implements HandlerInterceptor { @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { Map pathVariables = (Map) request.getAttribute(HandlerMapping.URI_TEMPLATE_VARIABLES_ATTRIBUTE); String chatbotId = (String)pathVariables.get("classId"); System.out.println("classId: " + classId); if ("1234".equals(classId)) return true; return false; } @Override public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { // TODO Auto-generated method stub } @Override public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { // TODO Auto-generated method stub } } 
 package com.example.demo; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.InterceptorRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport; @Configuration public class MvcInterceptorConfig extends WebMvcConfigurationSupport{ @Override protected void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(new SpringMVCInterceptor()).addPathPatterns("/chatbot/**"); super.addInterceptors(registry); } } 

spring @PathVariable:请求路径url 上有变量值,通过@PathVariable获取

请求路径url 上有个变量值,可以通过@PathVariable来获取

示例:

id为变量值:

 @RequestMapping(value = "/page/{id}", method = RequestMethod.GET)     
 Tool tool = new Tool(); tool.setUrls(new String[]{"finance/account/loanDownExcel/cur","finance/account/loanDownExcel/all"});
 @RequestMapping("accountlog/loanDownExcel/{type}") public void exportAccountLogExcel(@PathVariable("type")  String type)throws Exception {}

或者是

 public void exportAccountLogExcel(@PathVariable   String type)throws Exception {}

以上就是如何在拦截器中获取url路径里面@PathVariable的参数值的详细内容,更多请关注0133技术站其它相关文章!

赞(0) 打赏
未经允许不得转载:0133技术站首页 » Java