spring注解

@RequestParam,@RequestBody,@PathVariable三个spring注解的区别

@RequestParam 和 @PathVariable 注解是用于从request中接收请求的,他们接受的都是get请求的参数,关键点不同的是@RequestParam 是从request里面拿取值,而 @PathVariable 是从一个URI模板里面来填充

一、@RequestParam
该注解适用于http的url中里通过?方式向后台发送请求,后台controller中接收前台参数的方式,比如如下的url:

http://localhost:8080/springmvc/hello/101?param1=10&param2=20

代码中可以用
    @RequestMapping("/hello")
	public String getDetails(
			@RequestParam(value="param1", required=true) String param1,
			@RequestParam(value="param2", required=false) String param2){
        //
	}

这种方式获取

@RequestParam 支持如下的参数:
defaultValue:如果本次请求没有携带这个参数,或者参数为空,那么就会启用默认值
name:绑定本次参数的名称,要跟URL上面的一样
required:false表明这个参数是不是必须的,true表示必须的,如果在true的情况下,地址中没有此参数,将会报400错误
value:跟name一样的作用,是name属性的一个别名
二、@PathVariable
该注解适用于http的url使用restful方式,后台controller中接收前台参数的方式,比如如下的url:

http://localhost:8080/springmvc/hello/101?param1=10&param2=20

代码中可以用
    @RequestMapping("/hello/{id}")
	public String getDetails(@PathVariable(value="id") String id,
        @RequestParam(value="param1", required=true) String param1,
        RequestParam(value="param2", required=false) String param2){
        //
	}

这种方式获取

三、@RequestBody
一般是post请求的时候才会使用这个请求,把参数丢在requestbody里面,使用实体类接收
    @RequestMapping("/hello")
	public String getDetails(@RequestBody(value="id")User user,HttpServletRequest request){
        //
	}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值