先看下代码:

@RequestMapping(value = "/campaigns/{pageNo}/{pageSize}", method = RequestMethod.GET)
public String getList(@PathVariable("pageNo") int pageNo, @PathVariable("pageSize") int pageSize,@RequestParam(defaultValue = "0") int status,@RequestParam(required=false) String keyword) {//....return null;
}

1.@RequestParam

在上面代码中,一般情况下@RequestParam不加,方法参数也一样能获取对应绑定的数据,所以很多人都认为@RequestParam是可加可不加的。直到后来才了解到,Java的反射机制生成的对象并不会保存包含方法的参数,即参数名不会保留在class文件中,所以spring不能反射绑定。

那么问题来了,为什么我们平时都能绑定呢?

这是因为,在Debug模式开启情况下,就能绑定,而我们一般用的eclipse都是默认开启的。Debug模式下之所以能够绑定,是因为在project–>Properties–>Java Compiler里选中了Add variable attributes to generated class files(used by the debugger)。要知道,开启Debug模式会影响性能的,所以正式上线的时候,都会关掉的,如果我们没加的话就会报以下错误:

Request processing failed;nested exception is java.lang.IllegalArgumentException:Name for argument type ….

2.@PathVariable

@PathVariable是用来指定获取@RequestMapping里URL中占位符参数的字段,如上面的@PathVariable(“pageNo”) int pageNo中的pageNo字段就是为了获取{pageNo}这个占位符的值。@PathVariable括号里的名字必须与占位符的名字一致,而字段名可以不用一样。如果括号里不指定名字,则在非debug模式下也会遇到1的问题

所以,@PathVariable括号里的名字是必须的。

springMVC的@RequestParam是必须滴相关推荐

  1. SpringMVC注解@RequestParam全面解析____ 注解@RequestParam如何使用加与不加的区别

    SpringMVC注解@RequestParam全面解析 在此之前,写项目一直用的是@RequestParam(value="aa" required=false)这个注解,但是并 ...

  2. SpringMVC注解@RequestParam全面解析

    在SpringMVC后台控制层获取参数的方式主要有两种,一种是request.getParameter("name"),另外一种是用注解@RequestParam直接获取.这里主要 ...

  3. SpringMVC之RequestParam详解

    定义与作用 此注解用于从请求正文中获取请求参数,给控制器形参赋值.如果控制器方法形参与请求正文中的参数名一致时,就无需使用该注解.在spring2.5之后出现. 当请求中没有参数时,RequestPa ...

  4. SpringMvc之@RequestParam详解

    @RequestParam是传递参数的. @RequestParam用于将请求参数区数据映射到功能处理方法的参数上. public String queryUserName(@RequestParam ...

  5. SpringMVC注解@RequestParam(value=xxxx,required=false)解释

    参数形式: @RequestParam(value = "key",required = false)String key,@RequestParam(value = " ...

  6. SpringMVC中@RequestParam(username)

    @RequestMapping(value="/world")public String Helloworldparam(@RequestParam("username& ...

  7. 【springmvc】@RequestParam详解以及加与不加的区别

    以前写controller层的时候都是默认带上 @RequestParam 的, 今天发现不加@RequestParam 也能接收到参数 下面我们来区分一下加与不加的区别 这里有两种写法 @Reque ...

  8. SpringMVC框架----RequestParam注解和RequestBody注解

    1.RequestParam注解 作用:把请求中指定名称的参数给控制器中的形参赋值. 如果表单提交一个属性username,后台想接收到这个数据,必须在方法中加一个参数叫username,如果名字写的 ...

  9. SpringMVC注解@RequestParam解析

    1.可以对传入参数指定参数名 1 @RequestParam String inputStr 2 // 下面的对传入参数指定为param,如果前端不传param参数名,会报错 3 @RequestPa ...

最新文章

  1. Navicat Essentials 功能简介
  2. python下载安装教程3.8.0-windows中安装Python3.8.0的实现方法
  3. 二十五、深入Python中的协程
  4. Java 方法、 流(Stream)、文件(File)和IO 总结
  5. 判断用户是否存在再进行新增_基于tableau从商业分析模型角度对业务数据进行多维度分析--【商业分析类】...
  6. 腾讯云cloudlite认证_【腾讯云】考个证...大数据开发工程师认证
  7. linux ps 详解 博客,Linux PS 命令 详解(转)
  8. SpringBoot—jasypt加解密库的使用方法
  9. centos6 yum源_Centos6安装Zabbix3.4.15注意事项
  10. Hexo报错Usage: hexo command处理及图片显示问题
  11. android camera API1调用camera HAL3流程学习总结
  12. 让你尖叫的游戏开发工具清单
  13. 【jmeter教程——从入门到熟练】
  14. 安装fitz报错_Kylo单机安装详解
  15. python爬虫01-get请求,post请求,参数拼接,re正则解析,bs解析,xpath解析xml及html文件,requests进阶模拟登录,反盗链zhuanqu,代理
  16. 【IoT】物联网NB-IoT之电信物联网开放平台对接流程浅析
  17. CSS 单词换行 word-break属性
  18. OSI网络模型,IO模型,BIO模型,NIO模型,AIO模型,TCP/IP协议
  19. [杨可桢]机械设计基础题库 机械设计基础习题 2022机械设计基础考试题答案 杨可桢《机械设计基础》(第7版)笔记和课后习题(含考研真题)详解
  20. 基于android的宠物救助站app

热门文章

  1. 【django】HttpResponse对象
  2. CSAPP第4章家庭作业参考答案
  3. VMware虚拟机安装Ubuntu
  4. 【攻防世界016】re2-cpp-is-awesome
  5. win32 实现死锁的小例子
  6. /dev/tcp 的简单应用
  7. vector邻接表建图+DFS+BFS
  8. 2020-12-16(虚析构函数,神逻辑代码)
  9. pwn学习总结(三) —— 栈溢出经典题型整理
  10. 22、Java Swing JTable:表格