时间:2021-05-19
这是示例代码
@GetMapping("/findById") public ResultBean byid(@RequestParam(defaultValue = "1",required = false,name = "ls") Integer id){ List<Customers> all = customersService.findById(id); return ResultBean.ok(all); }2.1 @RequestParam,对于参数入参,这个注解可以不必须有,但只能匹配和你定义的入参,完全一样的名称,对应则匹配,不对应就不匹配。
2.2 required ,是否必须,默认为 true,也就是说,当@RequestParam存在时,是默认required = true条件的,@RequestParam不存在时,返回 2.1 的解释。
2.3 defaultValue ,设置初始值,一般和required = false一起使用,如果不传值,则使用默认值。
2.4 value ,和name,一样,给变量起别名,一一对应于前端传的属性名,映射到后端接口变量名,有时前端无法按要求传给你你所希望的变量名,这个就发挥用处了。
2.5 name ,和value一样,给变量起别名,两个同时存在时,访问时就会出错。
补充:springMVC的@RequestParam是必须滴
先看下代码:
@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;}在上面代码中,一般情况下@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 ….
@PathVariable是用来指定获取@RequestMapping里URL中占位符参数的字段,如上面的@PathVariable(“pageNo”) int pageNo中的pageNo字段就是为了获取{pageNo}这个占位符的值。
@PathVariable括号里的名字必须与占位符的名字一致,而字段名可以不用一样。
如果括号里不指定名字,则在非debug模式下也会遇到1的问题
所以,@PathVariable括号里的名字是必须的。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持。如有错误或未考虑完全的地方,望不吝赐教。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
php检查函数必传参数是否存在的实例详解在php实际编程中,接口经常会接收到前端传来的参数,其中有些参数不是必传的,有些参数是必传的,如何“检查函数必传参数是否
@RequestParam和@PathVariable注解是用于从request中接收请求的,两个都可以接收参数,关键点不同的是@RequestParam是从r
浅谈鼠标参数对操作的影响(图3)DPI已经大大地落伍。为什么还有少数职业选手继续运用? 浅谈鼠标参数对操作的影响(图4) 浅谈鼠标参数对操作的影响(图5
你是否经常在debug那些简单可避免的bug?可能你给函数传参的时候搞错了参数的顺序,或者本来应该传个Number类型的参数,你传了一个String类型?Jav
一、概述1.3参数绑定过程1.2@RequestParam如果request请求的参数名和controller方法的形参数名称一致,适配器自动进行参数绑定。如果