SpringMVC @RequestBody和@ResponseBody注解 以及 Ajax异步请求
实例讲解:
1.先创建一个实体类Student:
public class Student {private String sname;private String password;private Integer age;public String getSname() {return sname;}public void setSname(String sname) {this.sname = sname;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public Integer getAge() {return age;}public void setAge(Integer age) {this.age = age;}@Overridepublic String toString() {return "Student{" +"sname='" + sname + '\'' +", password='" + password + '\'' +", age=" + age +'}';}
}
2.编写Ajax异步请求:
<%@ page contentType="text/html;charset=UTF-8" language="java"%>
<html>
<head><title>响应数据和结果视图</title><script src="js/jquery.min.js"></script><script>// 页面加载,绑定单击事件$(function () {$("#btn").click(function () {// 发送Ajax请求$.ajax({// 编写json格式,设置属性和值url:"response/testAjax",contentType:"application/json;charset=UTF-8",data:'{"sname":"王小风","password":"123","age":18}',dataType:"json",type:"post",success:function (data) {// data服务器端响应的json的数据,进行解析alert(data);alert(data.sname);alert(data.age);alert(data.password);}})});});</script>
</head>
<body>
<button id="btn">发送Ajax的请求</button>
</body>
</html>
注意:json数据中的sname,age,password必须与实体类中的属性相互对应。否则,后端接收的json数据为null.
3.因为要将json数据封装到JavaBean中,需要使用jackson的jar包:
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.9.0</version>
</dependency><dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.9.0</version>
</dependency><dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.9.0</version>
</dependency>
4.模拟异步请求响应:
/*** 模拟异步请求响应*/@RequestMapping(value = "/testAjax")public @ResponseBody Student testAjax(@RequestBody Student student){System.out.println("testAjax方法执行了");System.out.println(student);// 模拟数据库student.setSname("王大风");student.setAge(81);return student;}
说明:
@RequestBody的作用就是从前端获取json数据(这里只改动模拟异步请求响应的代码):
/*** 模拟异步请求响应*/@RequestMapping(value = "/testAjax")public void testAjax(@RequestBody String body){System.out.println("testAjax方法执行了");System.out.println(body);}
控制台打印结果:
@ResponseBody的作用是将后端封装到JavaBean中的数据响应给前端,前端通过Ajax中的以下代码接收:
5.运行结果:
SpringMVC @RequestBody和@ResponseBody注解 以及 Ajax异步请求相关推荐
- 【SpringMVC】SpringMVC: @RequestBody 和@ResponseBody 注解详解 NoHandlerFoundException
文章目录 1.美图 2.概述 3.@RequestBody 3.1 使用时机 4.@ResponseBody 4.1 错误案例 4.2 苦苦寻找 4.3 思考升华 5.HttpMessageConve ...
- 在SpringMVC中使用@RequestBody和@ResponseBody注解处理json时,报出HTTP Status 415的解决方案
在SpringMVC中使用@RequestBody和@ResponseBody注解处理json时,报出HTTP Status 415的解决方案 参考文章: (1)在SpringMVC中使用@Reque ...
- SpringMVC @RequestBody和@ResponseBody原理解析
SpringMVC @RequestBody和@ResponseBody原理解析 前言 @RequestBody作用是将http请求解析为对应的对象.例如: http请求的参数(application ...
- SpringMVC中使用@ResponseBody注解标注业务方法
SpringMVC中使用@ResponseBody注解标注业务方法,将业务方法的返回值做成json输出给页面 导包: 除了一些spring的包之外,还需要jackson-annotations.jar ...
- maven工程 java 实现文件上传 SSM ajax异步请求上传
java ssm框架实现文件上传 实现:单文件上传.多文件上传(单选和多选),并且用 ajax 异步刷新,在当前界面显示上传的文件 首先springmvc的配置文件要配置上传文件解析器: 1 < ...
- ajax异步请求数据库实现级联下拉菜单。
ajax实现级联下拉菜单,使用Springboot实现. 思路很简单,使用ajax异步请求数据库数据即可. 文末有项目源码! 实现效果: 废话不多说,现在我们来开始实现! 第一步. 创建三张表:省.市 ...
- ajax异步处理代码实现,原生JS代码实现一个Ajax异步请求
异步加载的方式 (1) defer,只支持IE (2) async: (3) 创建script,插入到DOM中,加载完毕后callBack 实现ajax之前必须要创建一个 XMLHttpRequest ...
- php 返回字符串给aja,解决ajax异步请求返回的是字符串问题
1.返回结果差异 js获取后打印res.code无结果.因为返回数据格式不正确. php文件添加header头: header('Content-Type:application/json;'); 或 ...
- html弹窗赋值给查询框,bootstrap模态框动态赋值, ajax异步请求数据后给id为queryInfo的模态框赋值并弹出模态框(JS)...
/查询单个 function query(id) { $.ajax({ url : "/small/productServlet", async : true, type : &q ...
最新文章
- shell脚本——调试(-n / -x /-c)
- 移动硬盘函数不正确要如何寻回资料
- 将旧版本从Java EE 5减少到7
- For循环(十分重要)
- python数据格式化后导入数据库_如何为数据库导入重新格式化这个json?
- Anaconda+django写出第一个web app(十一)
- Nebula3渲染层: Graphics
- vpp之node节点分析二: qs类型
- 赴微软 软件开发测试工程师。
- VMware Workstation Pro安装
- 计算机英语四六级对调剂有影响吗,四六级没过影响考研复试和调剂吗?各高校标准不一...
- 如何在敏捷中实施变更管理
- Google pixel 原生安卓出现 WiFi 网络受限、优化网速、网络无法连接问题
- 力扣 1723. 完成所有工作的最短时间 二分+回溯+剪枝/状压dp
- leetcode643. 子数组最大平均数 I
- 怎么把视频中的人声和背景伴奏分离?
- 零信任网络ZTNA及SDP概念理解 身份认证 安当加密
- Pycharm无法编辑问题
- [SV]SystemVerilog進程之fork join专题详解及案例分析
- cannot create temp file for here-document: No space left on device