• SpringMVC的json交互


    一、注解说明

    1、@RequestBody

     作用:@RequestBody注解用于读取http请求的内容(字符串),通过springmvc提供的HttpMessageConverter接口将读到的内容转换为json、xml等格式的数据并绑定到controller方法的参数上。

    2、@ResponseBody

     作用:@ResponseBody注解用于将Controller的方法返回的对象,通过HttpMessageConverter接口转换为指定格式的数据,如json、XML等,通过response响应给客户端。

    二、请求json,响应json

    1、加入jar包

     springmvc默认使用MappingJacksonHttpMessageConverter对json数据进行转换,需要加入jackson的jar包。

    2、配置json转换器

      第一种方式:使用注解适配器的配置方式。

    <!--注解适配器 -->
    	<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
    		<property name="messageConverters">
    		<list>
    		<bean class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"></bean>
    		</list>
    		</property>
    	</bean>
    

      第二种方式:使用注解驱动方式,则不需要进行任何配置即可使用。

    3、controller方法获取json,响应json

     @RequestMapping("/updateitemsByJson")
    //使用注解,接受json,返回json
    public @ResponseBody ItemsCustom updateitemsByJson(@RequestBody ItemsCustom itemsExtend) throws Exception{
        System.out.println(itemsExtend);
        return itemsExtend;
    }
    

    4、编写jsp页面

    <%@ page language="java" contentType="text/html; charset=UTF-8"
             pageEncoding="UTF-8"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
        <head>
             <title>修改商品信息</title>
            <!--引入jquery-->
            <script type="application/javascript" src="${pageContext.request.contextPath}/js/jquery-1.4.4.min.js"></script>
            <!--ajax异步请求-->
            <script type="application/javascript">
                function request_json() {
                    $.ajax({
                        type :"post",
                        url:"${pageContext.request.contextPath}/updateitemsByJson.action",
                        contentType:"application/json;charset=utf-8",
                        data:'{"id":1,"name":"笔记本","price":5005}',
                        success:function (date) {
                        alert(date.toString())
                        }
                    });
                }
            </script>
        </head>
        <body>
           <input type="button" value="请求json" onclick="request_json()">
        </body>
    </html>
    

    5、测试结果

    请求:

    响应:

    三、请求key/value,返回json

    1、加入jar包

     springmvc默认使用MappingJacksonHttpMessageConverter对json数据进行转换,需要加入jackson的jar包。

    2、配置json转换器

      第一种方式:使用注解适配器的配置方式。

    <!--注解适配器 -->
    	<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
    		<property name="messageConverters">
    		<list>
    		<bean class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"></bean>
    		</list>
    		</property>
    	</bean>
    

      第二种方式:使用注解驱动方式,则不需要进行任何配置即可使用。

    3、controller方法获取key/value,响应json

     @RequestMapping("/updateitemsByJson1")
        //使用注解,接受json,返回json
        public @ResponseBody ItemsCustom updateitemsByJson1(ItemsCustom itemsExtend) throws Exception{
            System.out.println(itemsExtend);
            return itemsExtend;
        }
    

    4、jsp页面编写

    <%@ page language="java" contentType="text/html; charset=UTF-8"
             pageEncoding="UTF-8"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
        <head>
             <title>修改商品信息</title>
            <!--引入jquery-->
            <script type="application/javascript" src="${pageContext.request.contextPath}/js/jquery-1.4.4.min.js"></script>
            <!--ajax异步请求-->
            <script type="application/javascript">
                function response_json() {
                    $.ajax({
                        type:"post",
                        url:"${pageContext.request.contextPath}/updateitemsByJson1.action",
                     /*   contentType:"application/x-www-from-urlencode",*/
                        data:"id=1&name=笔记本&price=500",
                        success:function (data) {
                            alert(data.toString());
                        }
                    });
                }
            </script>
        </head>
        <body>
           <input type="button" value="响应json" onclick="response_json()">
        </body>
    </html>
    

    5、测试结果

    请求:

    响应:

  • 相关阅读:
    base64图片上传及回显
    C++类型转换
    threejs求两个向量的夹角
    实验数据记录
    工控机配置日志
    threejs两个向量旋转 一个向量绕零一个向量旋转一个角度后的向量计算
    SpringBootApplication cannot be resolved to a type
    python struct pack unpack
    日志
    python计算空间中两个向量的夹角
  • 原文地址:https://www.cnblogs.com/jack1995/p/7357586.html
Copyright © 2020-2023  润新知