SpringMVC—对Ajax的处理(含 JSON 类型)(3)

五、服务器端的 SpringMVC 如何返回 JSON 类型的字符串。

请求:

$("#testJson8").click(function () {
    $.ajax({
        url: "testReturnJsonValue",
        type: "post",
        success: function (result) {
            console.log(result);
        }
    });
});

1.返回单个对象

handler 方法:

@ResponseBody
@RequestMapping("/testReturnJsonValue")public Person testReturnJsonValue() {
    Person person = new Person();
    person.setName("lily");
    person.setAge(23);    return person;
}

在浏览器控制台正常打印了 Person 对象。

注意:这里没有指定 dataType。

2.返回多个对象

handler 方法:

@ResponseBody
@RequestMapping("/testReturnJsonValue")public List<Person> testReturnJsonValue() {
    List<Person> personList = new ArrayList<>();

    Person person = new Person();
    person.setName("lily");
    person.setAge(23);
    Person person2 = new Person();
    person2.setName("lucy");
    person2.setAge(33);
    personList.add(person);
    personList.add(person2);    return personList;
}

在浏览器控制条正常打印了 Person 数组。

3.返回 Map

@ResponseBody
@RequestMapping("/testReturnJsonValue")public Map<String, Person> testReturnJsonValue() {
    Map<String, Person> map = new HashMap<>();

    Person person = new Person();
    person.setName("lily");
    person.setAge(23);
    Person person2 = new Person();
    person2.setName("lucy");
    person2.setAge(33);

    map.put("1", person);
    map.put("2", person2);    return map;
}

浏览器控制台输出:

4.在实际生产环境下的 Ajax 返回值。

封装一个返回值类型:

public class AjaxResult implements Serializable {    public static final String RESULT_CODE_0000 = "0000";    public static final String RESULT_CODE_0001 = "0001";    private String code;    private String message;    private Object data;    public AjaxResult() {
    }    public String getCode() {        return this.code;
    }    public void setCode(String code) {        this.code = code;
    }    public String getMessage() {        return this.message;
    }    public void setMessage(String message) {        this.message = message;
    }    public Object getData() {        return this.data;
    }    public void setData(Object data) {        this.data = data;
    }
}

实际使用:

@ResponseBody
@RequestMapping("/testReturnJsonValue")public AjaxResult testReturnJsonValue() {
    AjaxResult ajaxResult = new AjaxResult();    try {
        Map<String, Person> map = new HashMap<>();

        Person person = new Person();
        person.setName("lily");
        person.setAge(23);
        Person person2 = new Person();
        person2.setName("lucy");
        person2.setAge(33);

        map.put("1", person);
        map.put("2", person2);
        ajaxResult.setData(map);
        ajaxResult.setMessage("success!");
        ajaxResult.setCode(AjaxResult.RESULT_CODE_0000);
    } catch(Exception e) {
        e.printStackTrace();
        ajaxResult.setMessage("fail!");
        ajaxResult.setCode(AjaxResult.RESULT_CODE_0001);
    }    return ajaxResult;
}

六、Request Payload

(1)出现的条件:

contentType: ‘application/json;charset=utf-8‘

type:post

(2)具体请参看

http://xiaobaoqiu.github.io/blog/2014/09/04/form-data-vs-request-payload/

(3)建议尽量不要手动的去处理此种情况,能选用别的方式避免就尽量避免。

七、总结

主要介绍了SpringMVC 对 Ajax 的支持,对与 Ajax 数据如何组织,重点介绍了对表单的支持。

时间: 2024-10-23 13:40:48

SpringMVC—对Ajax的处理(含 JSON 类型)(3)的相关文章

SpringMVC—对Ajax的处理(含 JSON 类型)(1)

一.首先要搞明白的一些事情. 1.从客户端来看,需要搞明白: (1)要发送什么样格式的 JSON 数据才能被服务器端的 SpringMVC 很便捷的处理,怎么才能让我们写更少的代码,如何做好 JSON 数据和实体之间的对应. (2)如何组织这些发送的数据. 2.从服务器端来看,需要搞明白: (1)SpringMVC 如何返回 JSON 数据. (2)SpringMVC 如何处理请求的复杂数据. 3.$.ajax 的几个参数: (1)contentType: contentType: 'appli

SpringMVC—对Ajax的处理(含 JSON 类型)(2)

这里编写了一个通用的类型转换器: 用来转换形如: firstName=jack&lastName=lily&gender=1&foods=Steak&foods=Pizza&quote=Enter+your+favorite+quote!&education=Jr.High&tOfD=Day 到 Student 对象. /** * @author solverpeng * @create 2016-08-22-17:37 */public final

springMVC接受ajax提交表单,json数据的两种方式

作为一个初入互联网行业的小鑫鑫,在使用springMVC时发现一个好耍的东西,决定记下来,免得哪天忘了,哈哈 第一种 序列化表单,将表单数据序列化为json对象字符串 $("#submit").click(function (){ var form=$("form").serializeArray(); $.ajax({ url:"${pageContext.request.contextPath}/teacher/updateTeacher",

本文使用springMVC和ajax,实现将JSON对象返回到页面

一.引言 本文使用springMVC和ajax做的一个小小的demo,实现将JSON对象返回到页面,没有什么技术含量,纯粹是因为最近项目中引入了springMVC框架. 二.入门例子 ①. 建立工程,并导入相应spring jar包和解析json的包fastjson. ②. 在web.xml文件中配置Spring的核心类DispatcherServlet ③. 配置Spring的核心配置文件spring-servlet.xml ④. 编写实体类Person public class Person

通过Ajax进行POST提交JSON类型的数据到SpringMVC Controller的方法

现在在做的项目用到了SpringMVC框架,需要从APP接收请求的JSON数据,为了测试方便,所以直接先用AJAX进行测试,不过刚开始用平时用的ajax方法,提交请求会出现415或者400错误,经过研究,终于可以了,现在做个总结. js代码: function postSimpleData() {         $.ajax({             type: "POST",             url: "/Service/SimpleData",   

springmvc通过ajax异步请求返回json格式数据

jsp 首先创建index.jsp页面 <script type="text/javascript"> $(function () { $("#username").click(function () { $.ajax({ url: "list",//请求地址 type: "POST", dataType: "json", success: function(data) {//data是默认的,

Ajax返回值之XML、json类型

Ajax返回值之XML.json类型 2015-01-29 ? 注意:Ajax默认是不能跨域的,在最新的2.0里是可以跨域,但是需要对方应答. ? Ajax返回值之XML类型 <HTML代码> <html> ????<head> ????????<title>Ajax返回return</title> ????<script> function?createXHR(){ ????var?xhr?=?null; ????if(window

SpringMVC——对Ajax的处理(包含 JSON 类型)

一.首先要搞明白的一些事情. 1.从客户端来看,需要搞明白: (1)要发送什么样格式的 JSON 数据才能被服务器端的 SpringMVC 很便捷的处理,怎么才能让我们写更少的代码,如何做好 JSON 数据和实体之间的对应. (2)如何组织这些发送的数据. 2.从服务器端来看,需要搞明白: (1)SpringMVC 如何返回 JSON 数据. (2)SpringMVC 如何处理请求的复杂数据. 3.$.ajax 的几个参数: (1)contentType: contentType: 'appli

SpringMVC中出现&quot; 400 Bad Request &quot;错误(用@ResponseBody处理ajax传过来的json数据转成bean)的解决方法

最近angularjs post到后台 400一头雾水 没有任何错误. 最后发现好文,感谢作者 SpringMVC中出现" 400 Bad Request "错误(用@ResponseBody处理ajax传过来的json数据转成bean)的解决方法 今天开发过程中,在SpringMVC中的Action中处理前台ajax请求传过来的json数据直接转成对应的实体类时出错:400 Bad Request,后台也不报错,400指的的是请求无效(请求有语法问题或者不能满足请求),调试了好长时间