springmvc + json + js + ajax 数据交互

介绍

这里简单写一下 springmvc 下 页面 js 使用 ajax 请求和返回的 json 数据交互

标签介绍

  1. @RequestBody
    @RequestBody 注解用于读取 http 请求的内容(字符串),通过 springmvc 提供的HttpMessageConverter 接口将读到的内容转换为 json 、xml 等格式的数据并绑定到 controller 方法的参数上。
    eg : List.action?id=1&name=zhangsan&age=12
    本例子应用:
    @RequestBody 注解实现接收 http 请求的 json 数据,将 json 数据转换为 java 对象

  2. @ResponseBody
    @ResponseBody 注解用于将 Controller 的方法返回的对象,通过 HttpMessageConverter 接口转换为指定格式的数据如:json , xml等,通过 Response 响应给客户端
    本例子应用:
    @ResponseBody 注解实现将 controller 方法返回对象转换为 json 响应给客户端

环境准备

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

配置 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>
**注意**:如果使用<mvc:annotation-driven /> 则不用定义上边的内容。

Controller 编写

    @RequestMapping("/xxx")
    public @ResponseBody String xxx(@RequestBody Pojo pojo) throws JsonProcessingException{
        System.out.println(pojo);打印前台接受的参数
        //如果你要传递字符串去页面
        String valueAsString = mapper.writeValueAsString("ok");//将字符串 "ok" 转换成json
        return valueAsString;
        //如果你要传递 List, 对象等去页面
        直接 return 你要的 ,当然 ,注意方法的返回类型
    }

js - ajax 方法编写

1.  首先引入 js 
<script src="${pageContext.request.contextPath}/js/jquery-1.11.3.min.js"></script>
2. ajax 编码
    $.ajax({
            url : "url 请求 controller ",
            dataType : "json",
            type : "post",
            data : {
                "pid" : pid //这里传递pojo 属性,会自动封装到 pojo
            },
            success : function(data) {
                alert("删除成功!")
                load();//这里不放写个刷新页面的方法
            },
            error : function() {
                alert("网络错误 , 删除失败! 请重试")
            }
        })
    //当然 
    $.post(...);
    $.get(...); 
    也是可以使用的哦

不妨看看请求头 , 响应体 , 您刚刚提交 返回的数据吧 ~~~~

posted @ 2017-04-05 00:29  赵先生不知何许人也  阅读(284)  评论(0编辑  收藏  举报