您的位置:首页 > 其它

数据请求对象封装

2017-08-18 14:12 288 查看
后台中,经常需要有带分页的条件查询,需要将当前页,每页条数,以及其它条件传到Controller进行查询,这时我们可以写一个公共的类来处理数据请求。

通常在前台将所需要的数据放在对象数组中,然后将对象数组变成字符串传到Controller,然后Controller进行处理

数据请求对象封装类:

package com.***.cms.constants;

import org.apache.commons.lang3.StringUtils;

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;

/**
* jquery.datatable 数据请求对象封装
* 2017年2月6日 下午1:45:23
*/
public class DataTableRequest {

/** 需要处理的对象数组 */
private static JSONArray dataArray;

private int iDisplayStart = 0; // 起始索引
private int iDisplayLength = 0; // 每页显示的行数

public DataTableRequest() {

}

/**
* 初始化获取请求参数
* @param aoData
*/
public DataTableRequest(String aoData) {
dataArray = JSONArray.parseArray(aoData);
for (Object object : dataArray) {
JSONObject obj = (JSONObject) object;
String name = obj.getString("name");

if (StringUtils.equals(name,"iDisplayStart"))
this.iDisplayStart = obj.getIntValue("value");

if (StringUtils.equals(name,"iDisplayLength"))
this.iDisplayLength = obj.getIntValue("value");
}
}

/**
* 根据参数名称获取对应的值
* @param searchName
* @return
*/
public String  getSearchValue(String searchName){
for (Object object : dataArray) {
JSONObject obj = (JSONObject) object;
String name = obj.getString("name");
if (StringUtils.equals(name,searchName))
return  obj.getString("value");
}
return null;
}

public int getiDisplayStart() {
return iDisplayStart;
}

public void setiDisplayStart(int iDisplayStart) {
this.iDisplayStart = iDisplayStart;
}

public int getiDisplayLength() {
return iDisplayLength;
}

public void setiDisplayLength(int iDisplayLength) {
this.iDisplayLength = iDisplayLength;
}

}


例,前台:

<script type="text/javascript">
$("input").click(function(){
var data = [
{"name":"address","value":"重庆"},
{"name":"age","value":"24"},
{"name":"name","value":"张三"}
]
$.ajax({
url:"/merchants/testResult",
data:{result:JSON.stringify(data)}
});
})
</script>


Controller:

@RequestMapping("/testResult")
public void testResult(String result){
DataTableRequest d = new DataTableRequest(result) ;
String name = d.getSearchValue("name") ;
if(StringUtils.isNotEmpty(name)){

}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: