1.处理request的uri部分的参数:@PathVariable.
2.处理request header部分的参数:@RequestHeader,@CookieValue
@RequestHeader 注解,可以把Request请求header部分的值绑定到方法的参数上。
@CookieValue 可以把Request header中关于cookie的值绑定到方法的参数上。
3.@RequestParam注解用来接收地址中的参数,参数的格式是http://*****?uid=111111&uname=张三。
4.@RequestBody注解用来接收request的body中的参数,@RequestBody可以将多个参数放入到一个实体类或者Map中。
5.参数验证@Valid、@Validated
@Valid是使用hibernate validation的时候使用
@Validated是只用spring Validator 校验机制使用,@Validated是@Valid 的一次封装,是spring提供的校验机制使用。@Valid不提供分组功能
@Validated注解可以用一个模型来接收地址栏中的参数,参数的格式是http://*****?uid=111111&uname=张三。
@GroupSequence注解对组进行排序
注意:
a.BindingResult 对象必须在 @Valid 或@Validated 的紧挨着的后面,否则接收不到错误信息。
b.一个功能方法上处理多个模型对象时,需添加多个验证结果对象
c.@Valid 递归的对关联对象进行校验, 如果关联对象是个集合或者数组,那么对其中的元素进行递归校验,如果是一个map,则对其中的值部分进行校验.(是否进行递归验证)
使用场景如:
spring mvc + @Valid/@Validated + @RequestBody 接收json同时校验javaBean的数据有效性