博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
springmvc+json 前后台数据交互
阅读量:4515 次
发布时间:2019-06-08

本文共 3088 字,大约阅读时间需要 10 分钟。

1. 配置

(1) 文件配置参考
(2) 导入jackson相关包:jackson-annotations-2.9.4.jar,jackson-core-2.9.4.jar,jackson-databind-2.9.4.jar

(3) 在WebContent目录下创建js文件夹,加入jquery和json2的js文件

js文件及jackson的jar文件可以在下载

2. 项目结构

一、接收json格式的数据

1. book.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%><%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
测试接收JSON格式的数据编号:
书名:
作者:

在jsp页面中:

(1) 页面使用jQuery发送json数据
(2) 页面载入时调用testRequestBody函数
(3) testRequestBody函数发送异步请求到"json/testRequestBody",请求成功将返回一个json数据,接到返回的数据后,将数据设置到页面的<span>中
2. BookController.java

@Controller@RequestMapping("/json")public class BookController {        private static final Log logger = LogFactory.getLog(BookController.class);        //@RequestBody根据json数据,转换成对应的Object    @RequestMapping(value="/testRequestBody")    public void setJson(@RequestBody Book book,            HttpServletResponse response) throws Exception{        // ObjectMapper类是Jackson库的主要类。它提供一些功能将Java对象转换成对应的JSON格式的数据        ObjectMapper mapper = new ObjectMapper();        // 将book对象转换成json输出        logger.info(mapper.writeValueAsString(book) );        book.setBookAuthor("文");        response.setContentType("text/html;charset=UTF-8");        // 将book对象转换成json写出到客户端        response.getWriter().println(mapper.writeValueAsString(book));    }

@RequestBody Book book表示:使用@RequestBody注解获取到的json数据,将json数据设置到对应的Book对象的属性中,HttpServletResponse response用来输出响应数据到客户端。

前台jsp页面的json数据传入bookId和bookName,为了测试接收数据,使用logger.info(mapper.writeValueAsString(book) ),代码将接收到的json数据的book对象打印在控制台上。

3. Book.java

public class Book implements Serializable{    private Integer bookId;    private String bookName;    private String bookAuthor;    public Book(){        super();    }        public Book(Integer id, String name, String author) {        super();        this.bookId = id;        this.bookName = name;        this.bookAuthor = author;    }        //setter and getter}

在浏览器中输入http://localhost:8080/ProgramName/book.jsp

在载入index.jsp页面时,会发送ajax请求,传递json数据,BookController接收到请求后,@RequestBody注解会将json数据设置到Book参数的对应属性中
然后setJson方法给Book对象的author属性赋值,并把Book对象转换成json输出到客户端。结果如下:

控制台输出如下信息:

 INFO [http-bio-8080-exec-17] - {"bookId":1,"bookName":"Spring MVC","bookAuthor":null}

二、返回json格式的数据

1. BookController.java

@RequestMapping(value="/testRequestBody2")    //ResponseBody会将集合数据转换为json格式,并将其返回客户端    @ResponseBody    public Object getJson(){        List
list = new ArrayList
(); list.add(new Book(1,"Spring MVC","文")); list.add(new Book(2,"JavaEE","李")); return list; }

getJson方法将List集合数据转换成json格式,然后将其返回到客户端。

1. book2.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%>
测试返回JSON格式的数据
编号 书名 作者

在浏览器中输入http://localhost:8080/ProgramName/book.jsp

载入book2.jsp页面时会发送ajax请求,getJson方法创建多个Book对象并将其封装到List集合中返回,方法上的@RequestBody注解会将集合数据转换为json格式数据并将其返回客户端。结果如下:

参考:《Spring+MyBatis企业应用实战》

转载于:https://www.cnblogs.com/zeroingToOne/p/8917684.html

你可能感兴趣的文章
Java EE Map
查看>>
Hadoop源代码点滴-文件系统HDFS
查看>>
单个页面Request编码方式的改变,无需改动Web.config~
查看>>
SQL Server中的窗口函数
查看>>
【Alpha】Daily Scrum Meeting第十次
查看>>
戴尔Inspiron N4120 笔记本电脑安装XP、win7双系统过程
查看>>
Android 适配知识点
查看>>
Android中常用的几种加密
查看>>
50.Android编码规范
查看>>
linux下source命令的基本功能
查看>>
linux-IO重定向-文本流重定向
查看>>
MSSQLSERVER服务无法启动的解决方案
查看>>
MySQL数据库管理
查看>>
ASP.NET中进度条的简单应用
查看>>
Java Activiti6.0 spring5 SSM 工作流引擎 审批流程 java项目框架
查看>>
md5
查看>>
Linux下的crontab定时执行任务命令详解
查看>>
C#高级编程(第7版) Professional C# 4 and .NET 4 - 读书笔记
查看>>
ipad4自动下载了ios8的安装包,好几个G啊,不想更新,怎么删了呢?
查看>>
JS中的Navigator 对象
查看>>