@ResponseBody 和 @RequestBody 的作用
先提一嘴 @RequestMapping(“url”),这里的 url写的是请求路径的一部分,一般作用在 Controller的方法上,作为请求的映射地址。
代码:
@RequestMapping(value = "/test")//类级别映射,可以没有,一般用于减少书写量 public class myController {//方法级别映射,必须有,那么这个方法的访问地址就是/test/aaa,请求到的页面就是test.jsp【当然,这里的.jsp需要在配置文件中配置】@RequestMapping(value = "/aaa")public String getMyName() {return "test";} }
那么 @ResponseBody呢?
@ResponseBody是作用在方法上的,@ResponseBody 表示该方法的返回结果直接写入 HTTP response body 中,一般在异步获取数据时使用【也就是AJAX】,在使用 @RequestMapping后,返回值通常解析为跳转路径,但是加上 @ResponseBody 后返回结果不会被解析为跳转路径,而是直接写入 HTTP response body 中。 比如异步获取 json 数据,加上 @ResponseBody 后,会直接返回 json 数据。@RequestBody 将 HTTP 请求正文插入方法中,使用适合的 HttpMessageConverter 将请求体写入某个对象。
举个例子:
前台异步请求:
function loginAction() {// 获取用户输入的账号和密码var name = $('#count').val();var password = $('#password').val();$.ajax({url : 'account/login.do',type : 'post',// data对象中的属性名要和服务端控制器的参数名一致 login(name, password)data : {'name' : name,'password' : password},dataType : 'json',success : function(result) {if (result.state == 0) {// 登录成功,设置cookie并跳转edit.htmladdCookie('userId', result.data.id);addCookie('nick', result.data.nick);location.href = 'edit.html';} else {// 登录失败var msg = result.message;$('#sig_in').next().html(msg);$('#sig_in').next().css("color", "red");}},error : function(e) {alert("系统异常");}});$('#password').val(""); }后台 Controller类中对应的方法:
@RequestMapping("/login.do")@ResponseBodypublic Object login(String name, String password, HttpSession session) {user = userService.checkLogin(name, password);session.setAttribute("user", user);return new JsonResult(user);}
@RequestBody呢?
@RequestBody是作用在形参列表上,用于将前台发送过来固定格式的数据【xml 格式或者 json等】封装为对应的 JavaBean 对象,封装时使用到的一个对象是系统默认配置的 HttpMessageConverter进行解析,然后封装到形参上。
比如上面的登录后台代码可以改为:
@RequestMapping("/login.do")@ResponseBodypublic Object login(@RequestBody User loginUuser, HttpSession session) {user = userService.checkLogin(loginUser);session.setAttribute("user", user);return new JsonResult(user);}
@ResponseBody 和 @RequestBody 的作用相关推荐
- SpringMVC中@ResponseBody和@RequestBody的使用
- @ResponseBody:该注解用于将Controller的方法返回的对象,通过HttpMessageConverter接口转换为指定格式的数据如:json,xml等,通过Response响应给 ...
- @responseBody和@RequestBody
@responseBody和@RequestBody @responseBody把后台pojo转换json对象,返回到页面. @RequestBody接受前台json数据,把json数据自动封装jav ...
- 详述@ResponseBody和@RequestBody注解的区别
2019独角兽企业重金招聘Python工程师标准>>> 1 前言 在详述 @ResponseBody 和 @RequestBody 注解之前,咱先了解一下 @RequestMappi ...
- springMvc注解之@ResponseBody和@RequestBody
简介 springmvc对json的前后台传输做了很好封装,避免了重复编码的过程,下面来看看常用的@ResponseBody和@RequestBody注解 添加依赖 springmvc对json的处理 ...
- @ResponseBody,@RequestBody,@PathVariable
最近需要做些接口服务,服务协议定为JSON,为了整合在Spring中,一开始确实费了很大的劲,经朋友提醒才发现,SpringMVC已经强悍到如此地步,佩服! 相关参考: Spring 注解学习手札 ...
- Spring 注解学习手札(七) 补遗——@ResponseBody,@RequestBody,@PathVariable(转)
最近需要做些接口服务,服务协议定为JSON,为了整合在Spring中,一开始确实费了很大的劲,经朋友提醒才发现,SpringMVC已经强悍到如此地步,佩服! 相关参考: Spring 注解学习手札( ...
- java几个注解的作用及比较(@RestController、@Controller、@ResponseBody、@RequestBody等)
1.@Controller 标识一个Spring类是Spring MVC controller处理器,是一种特殊化的@Component 类,习惯于和@RequestMapping绑定来使用,后者是用 ...
- SpringMVC之@requestBody的作用
1.@requestBody注解常用来处理content-type不是默认的application/x-www-form-urlcoded编码的内容,比如说:application/json或者是ap ...
- spring boot中@ResponseBody等注解的作用与区别
在使用springmvc框架的时候,在处理json的时候需要用到spring框架特有的注解@ResponseBody或者@RestController注解,这两个注解都会处理返回的数据格式,使用了该类 ...
最新文章
- asp.net基础复习(二)——母版页
- /bin/bash^M: bad interpreter
- 5分钟让你了解 ZooKeeper 的功能和原理
- 第六章勘误以及Normalization算法不完整
- TKmybatis和mybatisplus哪个好用
- 《大数据》2022年第1期目次摘要
- 说说如何在 Spring 框架中使用 SpEL 表达式
- mybatis 不生效 参数_Spring Boot(七):你不能不知道的Mybatis缓存机制
- python 30个小代码_30个Python常用极简代码,拿走就用
- 下载zxing的网址
- Ribbon和Feign的对比-带简易例子
- 数据结构,持续更新!!!
- php 跳转邮箱,JS点击跳转登陆邮箱功能简单的实现方法
- 20189220余超 2019年密码与安全新技术讲座-课程总结报告
- ERP-企业资源计划
- 支付宝付款前后端(app)
- 一个苏州IT人的5年挨踢经历-------未来篇
- matlab试差法,研究生-化工单元与过程的稳态模拟方法(1).ppt
- 原生js实现美女拼图,把美女老婆抱回家,5个美女够不够!程序员就是可以为所欲为!
- 自动化查询四级真题 点击翻译