springmvc 参数绑定注解详解
来源:互联网 发布:三星手表gears软件 编辑:程序博客网 时间:2024/05/22 10:42
简介
Handler method参数绑定常用的注解,我们根据它们处理request的不同内容部分来看主要分为四类:
A. 处理requesr uri部分的注解,@PathVariable
B. 处理 request header部分的注解,@RequestHeader,@CookieValue
C. 处理 request body部分的注解,@RequestParam,@RequestBody
D. 处理 attribute类型的注解,@SessionAttributes,@ModelAttribute@PathVariable
当使用@RequestMapping URI template样式(即someUrl/{paramId})映射的时候,可以通过此注解绑定它传过来的值到方法的参数上。
PS:若方法的参数名 和 PathVariable中绑定的参数名不一致的时候,需要在@PathVariable(“name”)中指定绑定的参数名,用法如上图所示。
@RequestHeader/@CookieValues
@RequestHeaders
@RequestHeader 注解 可以把 request请求中header中的值绑定到 方法的参数上
Header的 示例 如下:
在代码中的应用别无二致,附一张代码图:
@CoookieValue
@CookieValue可以把header中 的关于cookie的值绑定到方法的参数上,cookie是浏览器自动发送的,例如用户登录之后,开启一个session,登录请求响应的时候会把session 的值自动传送到浏览器端,下次浏览器再次访问的时候会自动携带 cookie的值,也就是之前传递过来的session的值。
有cookie的header示例:
代码中的使用方法和 之前别无二致,不再上图了。
@RequestParam/@RequestBody
以chrome浏览器 解析的post请求:
@RequestParam
A. 常用来处理简单类型的数据绑定,通过request.getParamter()获取到的string可以直接转换为简单类型 的值(转换的过程是ConversionService配置的转换器来完成的)
B. 用来处理Content-Type为 application/x-www-form-urlencoded 编码的内容,提交方式 可以为 GET\POST
C. 该注解有两个属性,value、required;其中 value用来指定要传入值的id名称,required用来指定参数是否 必须绑定。
示例代码不再上图.
@RequestBody
该注解通常用来处理Content-Type不是 application/x-www-form-urlencoded
的编码内容,例如application/json、application/xml等
它是通过HandlerAdapter 配置的HttpMessageConverters来解析 post data body的,然后绑定到响应的bean上的。
因为配置有FormHttpMessageConverter,所以也可以用来处理application/x-www-urlencoded 的内容的,处理完的结果 放在 一个 MultiValueMap<String,String>,这种情况在 某些 特殊情况下使用,详情请查看FormHttpMessageConverterapi。
@SessionAttributes/@ModelAttribute
@SessionAttributes
该注解 用来绑定HttpSession中 的 Attribute 对象的值,便于在 方法中 的参数里 使用,该注解有 value 和 types两个属性 ,可以通过名字 和 类型 指定要使用 的attribute 对象。
@ModelAttribute
该注解有两个用法,一个是 加在 方法上,一个 是 加在 参数 上。
用于方法 上的时候,通常用来处理 @RequestMapping之前,为请求绑定需要 从后台查询的model。
用于参数上的时候,用来通过名称的对应,把相应名称的值 绑定到注解的参数bean上,而要绑定 的 值来源于 :
1. @SessionAttributes启用 的 attribute对象 上
2. @ModelAttribute 用于方法 上的时候 指定的model的对象
3. 上述两种情况都没有 的时候,new 一个 需要绑定的对象,然后把request中按名称对应的方式 把值绑定到 bean中。
PS :这种方式 实际 上的效果 就是 在调用 @RequestMapping 的方法 之前,为request对象的model里put(“account”:Accout)
---------------------------------------------------END--------------------------------------------------------
- springmvc 参数绑定注解详解
- SpringMvc之参数绑定注解详解
- SpringMvc之参数绑定注解详解
- SpringMVC参数绑定注解
- SpringMVC参数绑定注解
- springMVC参数绑定注解
- 【SpringMVC】参数绑定注解
- springmvc参数绑定常用注解
- SpringMVC 参数绑定详解
- springmvc注解开发-springmvc参数绑定过程
- springmvc注解开发-springmvc参数绑定-集合
- 注解驱动的springMVC与参数绑定
- springMVC–参数绑定常用的注解
- springMVC(4)------RequestParam注解绑定请求参数
- SpringMVC参数绑定注解概析
- 三、SpringMVC常用注解、参数绑定
- springMVC–参数绑定常用的注解
- SpringMVC常用参数绑定注解(annnotation)
- C++引用
- androidstudio更换svn地址方法
- 从订单信息页面进入订单详细商品页面,最简单的MVC思想
- 设置RecyclerView的位置(点击回到顶部)
- 继承TextView实现自定义动态文字闪动效果
- springmvc 参数绑定注解详解
- C++ 二维数组
- ABM将改变B2B营销行业的面貌
- Druid数据库连接池
- 1139: 输出最短字符串
- android IM即时通信之聊天界面UI框架
- 【leetcode】11. Container With Most Water
- 【微服务架构】SpringCloud组件和概念介绍(一)
- 全局关键字搜索:jQuery过滤器fastLiveFilter插件\BootstrapVue插件