首页 > 其他分享 >关于SpringMVC中@RequestMapping的params参数

关于SpringMVC中@RequestMapping的params参数

时间:2024-03-02 10:13:28浏览次数:35  
标签:RequestMapping RequestParam quantity SpringMVC version params productId reducePr

@RequestMapping注解的params参数

同一个url,只要 params 不同,springmvc 也是会区分匹配的。

@PostMapping("/reduceProductStock")
public String reduceProductStock(@RequestParam Long productId, @RequestParam Integer quantity) {
    productService.reduceProductStock(productId, quantity);
    return "success";
}

@PostMapping(value = "/reduceProductStock", params = "version")
public String reduceProductStock2(@RequestParam Long productId, @RequestParam Integer quantity) {
    productService.reduceProductStock(productId, quantity);
    return "success";
}

@PostMapping(value = "/reduceProductStock", params = "version=2")
public String reduceProductStock3(@RequestParam Long productId, @RequestParam Integer quantity) {
    productService.reduceProductStock(productId, quantity);
    return "success";
}
  1. 请求参数中不包含version,匹配第一个方法
  2. 包含version,但值不为2,匹配第二个方法
  3. 包含version,且值为2,匹配第三个方法

nacos 源码中的 com.alibaba.nacos.config.server.controller.ConfigController 就使用到了很多这种写法。

简单原理

底层实现类为 org.springframework.web.servlet.mvc.condition.ParamsRequestCondition,通过 org.springframework.web.servlet.mvc.condition.AbstractNameValueExpression 来解析参数表达式,如

!version
version
version=2
version!=2

参考

@RequestMapping的params参数

标签:RequestMapping,RequestParam,quantity,SpringMVC,version,params,productId,reducePr
From: https://www.cnblogs.com/strongmore/p/18031865

相关文章

  • 实战1-params随机生成(难度初级)
    目标网站>aHR0cDovL3R6eG0uanh6d2Z3dy5nb3YuY24vaWNpdHkvaXByby9vcGVuL3B1YmxpY2l0eQ==1.先找到需要逆向的参数通过翻页找到这个数据包![这是图片](https://img2024.cnblogs.com/blog/2861542/202402/2861542-20240228165958593-1353453011.png)复制数据包的Curl,运用爬虫工......
  • SpringMVC系列之(十二)拦截器
    拦截器过滤器拦截器拦截器链1.过滤器与拦截器的比较过滤器是servlet规范中的一部分,任何Javaweb工程都可使用;拦截器是SpringMVC自己的,只能在SpringMVC工程中使用。过滤器可以对所有要访问的资源拦截;拦截器只能拦截访问的Controller方法,如果访问的是jsp、html、css、imag......
  • SpringMVC系列之(十一)异常处理
    异常处理1.未进行异常处理的异常传递流程2.SpringMVC异常处理流程3.SpringMVC异常处理开发步骤编写自定义异常类(做提示信息的)编写异常处理器配置异常处理器(跳转到错误提示页面)4.实现Controller中的方法packagecn.itcast.controller;importcn.itcast.domain.U......
  • SpringMVC系列之(十)文件上传
    文件上传1.文件上传的前提form表单的ectype属性(表单请求正文的类型)取值必须是multipart/form-data,默认值是application/x-www-form-urlencodedmethod属性值为post提供文件选择域<inputtype="file"/>2.文件上传的原理ectype=application/x-www-form-urlencoded(默认值)表......
  • SpringMVC系列之(九)响应数据和结果视图
    响应数据和结果视图1.返回值分类这里的返回值指的是Controller中的方法的返回值。1.1String该字符串为逻辑视图名,通过视图解析器解析为物理视图地址。注:底层调用的是ModelAndView1.1.1实际开发中的应用实体类index.jsp<%--CreatedbyIntelliJIDEA.User:商务......
  • SpringMVC系列之(八)HiddentHttpMethodFilter过滤器
    HiddentHttpMethodFilter过滤器1.应用场景由于浏览器自身只支持发送get/post请求,其他请求方式并不支持,该过滤器用于模拟发送各种请求方式的请求(get/post/put/delete)Spring3.0提供2.浏览器发送PUT/DELETE请求的其他实现方式插件WebClient提供的静态方法HiddentHttpMetho......
  • SpringMVC系列之(六)自定义类型转换器
    自定义类型转换器SpringMVC在进行请求参数绑定时,自动进行了类型转换,前端传来的参数都是字符串,而控制器中的方法在接收时,可能会用到其他数据类型(如:Date、Integer、Double等),以日期类型为例,前端传的日期格式多样,SpringMVC自动转换类型的格式(2011/11/11)支持不了这么多类型,故有的日期......
  • SpringMVC系列之(五)POST请求中文乱码
    POST请求中文乱码1.配置解决中文乱码的过滤器web.xml中增加如下代码<filter><filter-name>characterEncodingFilter</filter-name><filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class><init-param><para......
  • SpringMVC系列之(四)请求参数的绑定
    请求参数的绑定获取前端传过来的参数的过程,如:Servlet的getParameter方法SpringMVC中的请求参数绑定:通过反射实现,SpringMVC中的请求参数绑定过程是把表单提交的请求参数,作为控制器中方法的参数进行绑定的。1.支持的数据类型基本数据类型和字符串实体类型(JavaBean)集合数据类......
  • SpringMVC系列之(三)常用注解
    常用注解1.RequestMappingRequestMapping可以放在类上和方法上,放在类上表示一级目录,或表示某一个具体的模块属性path和value属性的作用相同method决定方法的请求方式params:请求必须包含的参数headers:请求必须包含的请求头以上的属性出现多个,需要同时满足2.RequestPa......