SpringMVC—對Ajax的處理(含 JSON 類型)(3)

來源:互聯網
上載者:User

標籤:方式   nts   code   ibm   技術分享   ret   exception   src   object   

五、伺服器端的 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 資料如何組織,重點介紹了對錶單的支援。

 

SpringMVC—對Ajax的處理(含 JSON 類型)(3)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.