springMVC 4.x 处理 json

转载 2018年04月15日 17:54:55

JSON格式强大、简单、精简;其发明人说过,最少十年内一点都不用更新。在JavaWeb中使用频繁,各个JavaWeb框架都对其支持使用,下面看看SpringMVC中一般的使用方法;


整合 JSON 各框架,前面准备都一样,主要是最后的配置XML不一样。

从Spring 4.1版本及以后,均不再支持 Jackson 1.x,所以我们得使用 jackson 2.x


一、使用 Jackson 2.9.3 配置 JSON 传参方式:【我们以将表单数据转换成JSON字符串后传到Controller中】

  1、首先需要引用js框架:jquery.js 和 jquery.serializejson-2.3.1.js 

     

<script type="text/javascript" src="${root}/res/js/jquery.js"></script>
<script type="text/javascript" src="${root }/res/js/jquery.serializejson-2.3.1.js"></script>

  2、准备表单页面; 

     

 <form id="userform">
         <input type="text" name="username" value="${eo.username}" />
         <input type="text" name="name" value="${eo.name }" /> 
         <input type="text" name="age" value="${eo.age}" /> 
         <input type="text" name="sex" value="${eo.sex }" /> 
         <input type="text" name="email" value="${eo.email}" /> 
         <input type="text" name="id" value="${eo.id }" /> 
         <input type="text" name="password" value="${eo.password}" />
         <input type="text" name="status" value="${eo.status }" /> 
         <input type="button" onclick="onAjaxSubmit()" value="保存" />
</form>

  3、JS调用代码:

     

 <script type="text/javascript">
         function onAjaxSubmit(){
            var jsonObjData = $("#userform").serializeJSON();//序列化form表单的数据成JSON形式的JS对象
            var jsonStrData = JSON.stringify(jsonObjData);//将JSON格式的JS对象,转换成JSON格式的字符串
            $.ajax({
                 type:"POST",
                 url:"${root}/user/save",
                 dataType:"json",      
                 contentType:"application/json",               
                 data:jsonStrData,
                 success:function(data){
                  //调用成功后代码
                 }
              });
         }
</script>

  4、Controller 中Java代码:【@RequestBody主要是此注解,表示请求来的内容是json字符串,然后转换成Java对象

     

 @PostMapping("/save")
     @ResponseBody 【如果需要返回的对象转换成JSON字符串返回给客户端,只需要在此加入此注解】
  public void save(@RequestBody MUsersEO eo) {
         eo = service.saveEO(eo);
     }

  5、最后就是xml文件配置了,需要先导入 jackson-annotations-2.9.3.jar jackson-core-2.9.3.jar jackson-databind-2.9.3.jar 三包,然后在spring-mvc.xml文件中加入如下配置:

      

      <mvc:annotation-driven></mvc:annotation-driven>
      <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"/>
      <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
         <property name="messageConverters">
            <list>
              <bean class="org.springframework.http.converter.StringHttpMessageConverter">
                 <property name="supportedMediaTypes">
                    <list>
                        <value>text/html; charset=UTF-8</value>
                        <value>application/json;charset=UTF-8</value>
                    </list>
                 </property>
              </bean>
              <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
                 <property name="supportedMediaTypes">
                    <list>
                       <value>text/html; charset=UTF-8</value>
                       <value>application/json;charset=UTF-8</value>
                    </list>
                 </property>
              </bean>
            </list>
          </property>
      </bean>
      <mvc:resources mapping="/res/**" location="/res/" />
      <!-- 静态资源配置 -->


二、目前项目中包含如下Jar包:

aspectjweaver.jar
commons-dbcp2-2.1.1.jar
commons-fileupload-1.3.2.jar
commons-io-2.5.jar
commons-logging-1.2.jar
commons-pool2-2.4.2.jar
druid-1.1.3.jar
jackson-annotations-2.9.3.jar
jackson-core-2.9.3.jar
jackson-databind-2.9.3.jar
javax.inject-1.jar
log4j-1.2.17.jar
mybatis-3.4.5.jar
mybatis-plus-2.1.5.jar
mybatis-spring-1.3.1.jar
mysql-connector-java-5.1.44-bin.jar
spring-aop-4.3.13.RELEASE.jar
spring-aspects-4.3.13.RELEASE.jar
spring-beans-4.3.13.RELEASE.jar
spring-context-4.3.13.RELEASE.jar
spring-core-4.3.13.RELEASE.jar
spring-expression-4.3.13.RELEASE.jar
spring-jdbc-4.3.13.RELEASE.jar
spring-orm-4.3.13.RELEASE.jar
spring-tx-4.3.13.RELEASE.jar
spring-web-4.3.13.RELEASE.jar
spring-webmvc-4.3.13.RELEASE.jar
taglibs-standard-compat-1.2.5.jar
taglibs-standard-impl-1.2.5.jar
taglibs-standard-jstlel-1.2.5.jar
taglibs-standard-spec-1.2.5.jar

springmvc4.x配置json注意

spring MVC4以上,使用的json包有变更。 使用之前版本的json包(1.x)会出java.lang.NoClassDefFoundError: com/fasterxml/jackson...
  • a254808723
  • a254808723
  • 2017-06-01 23:57:27
  • 1752

SpringMVC-9 处理JSON数据

SpringMVC处理JSON数据的具体实现代码下载地址:http://download.csdn.net/download/bingbeichen/9797439……...
  • bingbeichen
  • bingbeichen
  • 2017-03-29 11:12:04
  • 550

springmvc加入json支持需要的jar包

  • 2015年07月28日 13:31
  • 883KB
  • 下载

springMVC之与json数据交互方法

前台代码:function channel(){ //先获取选中的值 var channelId = $("#channelId option:selected...
  • u013066244
  • u013066244
  • 2016-01-28 12:13:27
  • 10240

springmvc处理json数据

springmvc处理json数据 需要引入的包文件: jackson-annotations-2.3.0-rc2.jar jackson-core-2.3.0-rc2.jar jackson-dat...
  • baidu_33293577
  • baidu_33293577
  • 2016-09-21 09:51:54
  • 292

spring 3.x升级到Spring 4.x 依赖的相关 json jar 包加上即可。(注意事项和步骤)

参考:http://www.sojson.com/blog/145.html com.fasterxml.jackson.core jackson-databind 2.7....
  • u014033756
  • u014033756
  • 2016-11-20 14:38:10
  • 1062

尚硅谷佟刚SpringMVC 4.X视频教程---对应课件信息

  • 2017年03月26日 02:50
  • 22.92MB
  • 下载

Spring MVC 异常处理统一为json格式

在spring mvc开发中,当逻辑正常执行时返回客户端指定格式的数据,比如json,但是遇NullPointerException空指针异常,NoSuchMethodException调用的方法不存...
  • uniom
  • uniom
  • 2017-02-21 14:49:03
  • 809

SpringMVC统一异常处理 返回JSON解决方案

1.目的 本方案通过JSON的格式将后台出现的错误通过JSON传递给前台,主要用于Ajax发起请求而后台操作不通过时的解决方案 2.代码 统一异常 JSON返回对象 package bishe...
  • xin917480852
  • xin917480852
  • 2017-09-18 21:19:07
  • 1713

SpringMVC学习总结(四).SpringMVC处理Json与文件的上传下载

SpringMVC处理Json ①.引入依赖 com.fasterxml.jackson.core jackson-databind 2.8.5 ②.编写处理类 @ResponseBo...
  • yuchao2015
  • yuchao2015
  • 2017-01-02 21:51:33
  • 1511
收藏助手
不良信息举报
您举报文章:springMVC 4.x 处理 json
举报原因:
原因补充:

(最多只允许输入30个字)