首先需要pom导入需要的依赖
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.41</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.0.9</version>
</dependency>
PageData类
package com.su.suredis.pageData;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
import javax.servlet.http.HttpServletRequest;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.lang.math.NumberUtils;
import org.apache.ibatis.type.Alias;
import net.sf.json.JSONObject;
import net.sf.json.util.JSONUtils;
/**
* 存储数据的对象
* @ClassName: PageData
* @Description:(这里用一句话描述这个类的作用)
*
*/
@SuppressWarnings("rawtypes")
@Alias("pd")
public class PageData extends HashMap implements Map,Serializable{
private static final long serialVersionUID = 1L;
Map map = null;
HttpServletRequest request;
@SuppressWarnings("unchecked")
public PageData(HttpServletRequest request){
this.request = request;
Map properties = request.getParameterMap();
Map returnMap = new HashMap();
Iterator entries = properties.entrySet().iterator();
Entry entry;
String name = "";
String value = "";
while (entries.hasNext()) {
entry = (Entry) entries.next();
name = (String) entry.getKey();
Object valueObj = entry.getValue();
if(null == valueObj){
value = "";
}else if(valueObj instanceof String[]){
String[] values = (String[])valueObj;
for(int i=0;i<values.length;i++){
value = values[i] + ",";
}
value = value.substring(0, value.length()-1);
if (JSONUtils.mayBeJSON(value)) {
Object obj = com.alibaba.druid.support.json.JSONUtils.parse(value);
if (JSONUtils.isArray(obj)) {
List<PageData> pds = new ArrayList<PageData>();
List<Map<String, String>> list = (List<Map<String, String>>) obj;
for (Map<String, String> map : list) {
PageData pd = new PageData();
for (Entry<String, String> e : map.entrySet()) {
pd.put(e.getKey(), e.getValue());
}
pds.add(pd);
}
returnMap.put(name, pds);
}
continue;
}
}else{
value = valueObj.toString();
}
if (StringUtils.isEmpty(value)) {
value = null;
}
returnMap.put(name, value);
}
map = returnMap;
}
public PageData() {
map = new HashMap();
}
@Override
public Object get(Object key) {
Object obj = null;
if(map.get(key) instanceof Object[]) {
Object[] arr = (Object[])map.get(key);
obj = request == null ? arr:(request.getParameter((String)key) == null ? arr:arr[0]);
} else {
obj = map.get(key);
}
return obj;
}
public String getString(Object key) {
String val=null;
try {
if(null!=get(key)){
val=get(key).toString();
}
} catch (Exception e) {
return null;
}
return val;
}
public Double getDouble(Object key) {
String val=null;
if(null!=get(key)){
val=get(key).toString();
}
if(null!=val && NumberUtils.isNumber(val)){
Double num=Double.parseDouble(val);
return num;
}
return null;
}
public Integer getInteger(Object key) {
String val=null;
if(null!=get(key)){
val=get(key).toString();
}
if(null!=val && NumberUtils.isNumber(val)){
return Integer.parseInt(val);
}
return null;
}
@SuppressWarnings("unchecked")
@Override
public Object put(Object key, Object value) { //
return map.put(key, value);
}
@Override
public Object remove(Object key) {
return map.remove(key);
}
public void clear() {
map.clear();
}
public boolean containsKey(Object key) {
return map.containsKey(key);
}
public boolean containsValue(Object value) {
return map.containsValue(value);
}
public Set entrySet() {
return map.entrySet();
}
public boolean isEmpty() {
return map.isEmpty();
}
public Set keySet() {
return map.keySet();
}
@SuppressWarnings("unchecked")
public void putAll(Map t) {
map.putAll(t);
}
public int size() {
return map.size();
}
public Collection values() {
return map.values();
}
/**
* jsonObj对象转PageData
* @param jsonObj
* @return
*/
@SuppressWarnings("unchecked")
public static PageData jsonObject2PageData(JSONObject jsonObj){
PageData pd = new PageData();
if(jsonObj==null||jsonObj.size()==0){
return pd;
}
String key=null;
for (Iterator<String> keys = jsonObj.keys(); keys.hasNext();) {
try {
key = keys.next();
Object obj = jsonObj.get(key);
if(obj!=null){
pd.put(key, obj);
}
} catch (Exception e) {
e.printStackTrace();
}
}
return pd;
}
}