spring mvc json数据交互(附带实例)-mile米乐体育

spring mvc 在数据绑定的过程中需要对传递数据的格式和类型进行转换,它既可以转换 string 等类型的数据,也可以转换 json 等其他类型的数据。本节将针对 spring mvc 中 json 类型的数据交互进行讲解。

json 概述

json(javascript object notation, js 对象标记)是一种轻量级的数据交换格式。与 xml 一样,json 也是基于纯文本的数据格式。它有对象结构和数组结构两种数据结构。

1)对象结构

对象结构以“{”开始、以“}”结束,中间部分由 0 个或多个以英文“,”分隔的 key/value 对构成,key 和 value 之间以英文“:”分隔。对象结构的语法结构如下:

{ key1:value1, key2:value2, ... }

其中,key 必须为 string 类型,value 可以是 string、number、object、array 等数据类型。例如,一个 person 对象包含姓名、密码、年龄等信息,使用 json 的表示形式如下:

{ "pname":"张三", "password":"123456", "page":40 }

2)数组结构

数组结构以“[”开始、以“]”结束,中间部分由 0 个或多个以英文“,”分隔的值的列表组成。数组结构的语法结构如下:

{ value1, value2, ... }

上述两种(对象、数组)数据结构也可以分别组合构成更加复杂的数据结构。例如,一个 student 对象包含 sno、sname、hobby 和 college 对象,其 json 的表示形式如下:

{ "sno":"201802228888", "sname":"张三", "hobby":["篮球","足球"], "college":{ "cname":"清华大学", "city":"北京" } }

json 数据转换

为实现浏览器与控制器类之间的 json 数据交互,spring mvc 提供了 mappingjackson2httpmessageconverter 实现类默认处理 json 格式请求响应。该实现类利用 jackson 开源包读写 json 数据,将 java 对象转换为 json 对象和 xml 文档,同时也可以将 json 对象和 xml 文档转换为 java 对象。 在使用注解开发时需要用到两个重要的 json 格式转换注解,分别是 @requestbody 和 @responsebody。
  • @requestbody:用于将请求体中的数据绑定到方法的形参中,该注解应用在方法的形参上。
  • @responsebody:用于直接返回 return 对象,该注解应用在方法上。
下面通过一个案例来演示如何进行 json 数据交互,具体步骤如下。

1)创建应用并导入相关 jar 包

创建 springmvcdemo05 应用,然后将 spring mvc 的相关 jar 包、json 转换包添加到 springmvcdemo05 的 lib 目录下。springmvcdemo05 的 lib 目录如图 1 所示。 图 1springmvcdemo05的相关jar包

2)配置 web.xml

在 web.xml 文件中对 spring mvc 的前端控制器等信息进行配置,其代码和《数据绑定和表单标签的应用》教程中的 springmvcdemo04 一样,这里不再赘述。

3)配置 spring mvc 的核心配置文件

在 web-inf 目录下创建 spring mvc 的核心配置文件 springmvc-servlet.xml,代码如下:
                                                                       

4)创建 pojo 类

在 src 目录下创建 pojo 包,并在该包中创建 pojo 类 person,代码如下:

package pojo; public class person { private string pname; private string password; private integer page; //省略setter和getter方法 }

5)创建 jsp 页面测试 json 数据交互

在页面 index.jsp 来测试 json 数据交互,代码如下:
 <%@ page language="java" contenttype="text/html; charset=utf-8"     pageencoding="utf-8"%>             
用户名:
密码:
年龄:
在 index.jsp 页面中编写了一个测试 json 交互的表单,当单击“测试”按钮时执行页面中的 testjson() 函数。在该函数中使用了 jquery 的 ajax 方式将 json 格式的数据传递给以“/testjson”结尾的请求中。 因为在 index.jsp 中使用的是 jquery 的 ajax 进行的 json 数据提交和响应,所以还需要引入 jquery.js 文件。本例引入了 webcontent 目录下 js 文件夹中的 jquery-3.2.1.min.js,读者可以在源程序中找到该文件。

6)创建控制器类

在 src 目录下创建 controller 包,并在该包中创建一个用于用户操作的控制器类 testcontroller,代码如下:
 package testcontroller;  import org.springframework.stereotype.controller; import org.springframework.web.bind.annotation.requestbody; import org.springframework.web.bind.annotation.requestmapping; import org.springframework.web.bind.annotation.responsebody;  import pojo.person;  @controller public class testcontroller {     /**      * 接收页面请求的json参数,并返回json格式的结果      */     @requestmapping("testjson")     @responsebody     public person testjson(@requestbody person user) {         // 打印接收的json格式数据         system.out.println("pname="   user.getpname()   ",password="                   user.getpassword()   ",page"   user.getpage());         ;         // 返回json格式的响应         return user;     } }
在上述控制器类中编写了接收和响应 json 格式数据的 testjson 方法,方法中的 @requestbody 注解用于将前端请求体中的 json 格式数据绑定到形参 user 上,@responsebody 注解用于直接返回 person 对象(当返回 pojo 对象时默认转换为 json 格式数据进行响应)。

7)运行 index.jsp 页面,测试程序

将 springmvcdemo05 应用发布到 tomcat 服务器并启动服务器,在浏览器中访问地址“http://localhost:8080/springmvcdemo05/index.jsp”,运行效果如图 2 所示。 图 2index.jsp 测试页面 在图 2 所示的输入框中输入信息后单击“测试”按钮,当程序正确执行时页面将弹出显示输入信息的对话框,如图 3 所示。 图 3index.jsp 正确执行的效果 同时,myeclipse 的控制台将打印出相应数据,如图 4 所示。 图 4 myeclipse 运行结果 从图 3 和图 4 所示的结果可以看出,编写的代码可以将 json 格式的请求数据转换为方法中的 java 对象,也可以将 java 对象转换为 json 格式的响应数据
展开全文
内容来源于互联网和用户投稿,文章中一旦含有米乐app官网登录的联系方式务必识别真假,本站仅做信息展示不承担任何相关责任,如有侵权或涉及法律问题请联系米乐app官网登录删除

最新文章

网站地图