您的位置:首页 > 其它

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

2016-10-30 11:44 162 查看
我们使用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();
就可以使用这两个对象了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: