springMVC 4.x 处理 json

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

阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页