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

SpringMVC注解@RequestParam全面解析

在此之前,写项目一直用的是@RequestParam(value=“aa” required=false)这个注解,但是并不知道它的意思。现在懂了,特来记录下。

1、可以对传入参数指定参数名

1 @RequestParam String inputStr  
2 // 下面的对传入参数指定为aa,如果前端不传aa参数名,会报错  
3 @RequestParam(value="aa") String inputStr  

2、可以通过required=false或者true来要求@RequestParam配置的前端参数是否一定要传

1 // required=false表示不传的话,会给参数赋值为null,required=true就是必须要有  
2 @RequestMapping("testRequestParam")    
3     public String filesUpload(@RequestParam(value="aa", required=true) String inputStr, HttpServletRequest request) 

3、如果@requestParam注解的参数是int类型,并且required=false,此时如果不传参数的话,会报错。原因是,required=false时,不传参数的话,会给参数赋值null,这样就会把null赋值给了int,因此会报错。

1 // required=false表示不传的话,会给参数赋值为null,required=true就是必须要有  
2 @RequestMapping("testRequestParam")    
3 public String filesUpload(@RequestParam(value="aa", required=false) int inputStr, HttpServletRequest request) 
4 若是前端页面不传参的话,此处就会报错。当然可以用Integer代替int




注解@RequestParam如何使用加与不加的区别\

springmvc为我们提供了多个注解来处理入参和返回值,@RequestParam就是用来处理入参的,但可能你会奇怪,平时不使用这个参数也可以获取到参数呀,确实加与不加都可以获取参数,但还是有区别的,下面就来看下如何使用和区分

方法/步骤

  1. 1

    为演示效果,首先需要创建一个测试控制类,然后创建一个测试方法,如图所示,方法里添加一个参数,此时方法参数没有添加注解

    注解@RequestParam如何使用加与不加的区别

  2. 2

    通过idea工具启动web项目,然后通过浏览器访问测试效果,不带参数则获取的参数为null,但页面可以正常显示,请求可以正常的执行,带上参数之后,参数可以正常的获取并打印出来了

    注解@RequestParam如何使用加与不加的区别

    注解@RequestParam如何使用加与不加的区别

  3. 3

    下面来对比下添加注解的效果,但只是添加@RequestParam,没有带任何的注解设置参数。

    注解@RequestParam如何使用加与不加的区别

  4. 4

    再次通过浏览器访问查看效果,此时带上userName参数页面可以正常显示并打印出结果值,但如图所示,不带参数的时候,页面报错,返回400,并提示userName不存在

    注解@RequestParam如何使用加与不加的区别

    注解@RequestParam如何使用加与不加的区别

  5. 5

    当然这样的限制是可以选择的,@RequestParam里添加required=false来关闭必须参数的限制,这样就和不带第一种不带注解的效果一样了

    注解@RequestParam如何使用加与不加的区别

    注解@RequestParam如何使用加与不加的区别

  6. 6

    @RequestParam还可以在参数为空的情况下,为我们设置一个参数的默认值,如图所示,可以看出来,没有参数的情况下,获取到的就是默认值

    注解@RequestParam如何使用加与不加的区别

    注解@RequestParam如何使用加与不加的区别

  7. 7

    默认参数的key名称是方法里的参数名称,但通过@RequestParam可以自定义另外一个,因为在某些条件下,方法名称固定下来不可以修改了,但请求的参数又需要通过另外一个参数key名称来传递,这样就可以通过这样的方式来实现

    注解@RequestParam如何使用加与不加的区别

    注解@RequestParam如何使用加与不加的区别

    END

注意事项

  • 虽然加与不加都可以获取到参数,但特定的需求或限制的时候,就需要结合@RequestParam注解来使用了。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Archie_java

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值