springmvc中的RequestBody自动注入List, Map, String数据结构
http://blog.csdn.net/ranmudaofa/article/details/51285034 直接上链接
请求参数
@RequestMapping(value=””,params=””)
params=”userId”:请求参数中必须带有userId
params=”!userId”:请求参数中不能包含userId
params=”userId=1”:请求参数中userId必须为1
params=”userId!=1”:请求参数中userId必须不为1,参数中可以不包含userId
params={“userId”, ”name”}:请求参数中必须有userId,name参数
接受参数
接受servlet 内置对象
HttpServletRequest HttpServletResponse HttpSession
springmvc 内置对象 model modelmap
接受请求路径中的占位符
映射类注解@requestmapping(value="show17{id}{name}")
方法形参注解@PathVariable(value=”id”) integer id
接受普通的请求参数
@requestparam(value="ss",required=true,defaultvalue="abcd")
value 参数名称 ,required 是否是必须, defaultvalue 默认参数值
自定义对象可以直接绑定 传入对象类型就可以
如果方法需要接受的list集合,不能够直接在方法中书写List
List的绑定,需要将List对象包装到一个类中才能绑定
获取cookie
@CookieValue使用方法同@RequestParam
案列@CookieValue("JSESSIONID") string cookie
返回数据类型性
string 类型 返回值即视图名称 返回值 必须是视图名称
如何接受传参: 用到 springmvc 特有的内置对象 model 和 modelmap 使用任何一个都可以
参数如何传到页面 调用 model 方法 ,,
model . addAttribute("msg", "接受请求参数springmvc 特有内置对象");
map.addAttribute("msg"," 接受参数 modelmap参数 ")
实质上最终还是包装成modelandview 了 string+ model 模型
-----------------------------------------------------------------------------------------------------------
数据转换
当一个处理请求的方法标记为@ResponseBody时,表示该方法需要输出其他视图(json、xml,默认输 出json),springmvc通过默认的转化器转化输出
在方法上加上@responesbody 注解表示以json的数据格式进行输出
@RequestBody:接收json数据,并把json数据转化成java实体
案列@RequestBody() User user 接受json 数据 ,包装成 user 对象
HttpServletRequest HttpServletResponse HttpSession
Model modelMap 方法返回值就是String(viewName),model或者map可以传递参数
@PathVariable(“xxx”) xxx不要省
@RequestParam(value=”xxx”, required=true, defaultValue=”设置默认值”) required默认为 true,defaultValue可以使他失效
设置响应状态
@responeseStatus(value=httpstatus.ok) 加在方法上 告诉他已经处理完成
springmvc 的重定向 和 转发
return "redirect:/show28." 重定向
restful 风格
返回类型 ResponseEntity<user>
1: 首先要判断参数是否合法
返回值 ResponseEntity.status(HttpStatus.bad_requset).body(null)
// 参数不合法 ,返回400 返回的
2: 如果查不到数据 返回404
if(user ==null){
return ResponseEntity.status(HttpStatus.not_found).body(user)
}
return ResponseEntity.status(HttpStatus.ok).body(user); //数据找到了响应200
另外一种方式ResponseEntity.ok(user) 也可以i
如果出现异常返回500
ResponseEntity.status(HttpStatus....xxxx).body(null);