在使用ajax需要传递两个对象时问题

来源:互联网 发布:华为手机免费网络硬盘 编辑:程序博客网 时间:2024/06/06 01:10

我们使用ajax通常传递的是json对象,但是我们如果需要同时传递两个对象到后台时怎么办?

如:我们后台同时需要分页信息Pages,和查询图书的条件信息Books,我们可以创建一个类关联这两个类:

public class PageBooks {    private Pages PageBooks_pages;    private Books PageBooks_books;
... get set 方法


并在请求的方法形参上加@RequestBody注解  

selectpagesAndBooksListAjax(HttpServletRequest request,@RequestBody PageBooks pageBooks) 

在ajax传递json的时候需要把两个对象进行json格式化:

//需要定义一个对象来存放nowpage的值,之后使用JSON.stringify转化这个对象    var nowPage={};    nowPage['nowPage'] = clientPage;    var jsonnowpage=JSON.stringify(nowPage);var formData = $('#selectbook_form').serializeArray();//<span style="font-family: Consolas;">#selectbook_form是查询Books的条件表单</span>       var fordataJSOM ={};//定义一个对象       var JSONval = {};//接收对象转化的json数据       $.each(formData,function(){        fordataJSOM[this.name] = this.value;//为这个对象增加属性和值       });       JSONval['pageBooks_pages'] = nowPage;       JSONval['pageBooks_books'] = fordataJSOM;       JSONval = JSON.stringify(JSONval);//对两个对象进行json的格式化得到包含两个对象的json字符串    $.ajax({        url:'selectpageAndBooksListAjax',        dataType:'json',        data:JSONval,        type:'post',        contentType:"application/json",

在后台我们可以得到一个PageBooks 的对象,里面包括了我们想要的Pages、Books的信息,

Books selectcondition = pageBooks.getPageBooks_books();
pagesnowPage = pageBooks.getPageBooks_pages().getNowPage();
就可以使用这两个对象了。


0 0