| package com.matrix.core.pojo; | 
|   | 
| import java.util.Collection; | 
| import java.util.HashMap; | 
| import java.util.Iterator; | 
| import java.util.Map; | 
| import java.util.Set; | 
|   | 
| import javax.servlet.http.HttpServletRequest; | 
|   | 
| /** | 
|  * simple mvc 支持的数据传输对象 | 
|  *  | 
|  * @author jiangyouyao | 
|  * | 
|  */ | 
| @SuppressWarnings("rawtypes") | 
| public class PageData extends HashMap implements Map { | 
|   | 
|     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 (name.equals("offset") || name.equals("limit")) { | 
|                 if (valueObj instanceof String[]){ | 
|                     String[] values = (String[]) valueObj; | 
|                     returnMap.put(name, Integer.parseInt(values[0].toString())); | 
|                 }else{ | 
|                     returnMap.put(name, Integer.parseInt(valueObj.toString())); | 
|                 } | 
|                 continue; | 
|             } | 
|          | 
|             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); | 
|             } else { | 
|                 value = valueObj.toString(); | 
|             } | 
|             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) { | 
|         return (String) get(key); | 
|     } | 
|   | 
|     @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(); | 
|     } | 
|   | 
| } |