Object数据转化为Map对象

使用request的getParameterMap(),将前段ajax传递的Object数据转化为Map对象

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;

import javax.servlet.http.HttpServletRequest;

public class RequestParamsToMap {
    
    
  //返回值类型为Map<String, Object>
    public static Map<String, Object> getParameterMap(HttpServletRequest request) {
    
    
        Map<String, String[]> properties = request.getParameterMap();//把请求参数封装到Map<String, String[]>中
        Map<String, Object> returnMap = new HashMap<String, Object>();
        Iterator<Entry<String, String[]>> iter = properties.entrySet().iterator();
        String name = "";
        String value = "";
        while (iter.hasNext()) {
    
    
            Entry<String, String[]> entry = iter.next();
            name = 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);
            } else {
    
    
                value = valueObj.toString();//用于请求参数中请求参数名唯一
            }
            returnMap.put(name, value);
        }
        return returnMap;
    }
    //返回值类型为Map<String, String>
    public static Map<String, String> getParameterStringMap(HttpServletRequest request) {
    
    
        Map<String, String[]> properties = request.getParameterMap();//把请求参数封装到Map<String, String[]>中
        Map<String, String> returnMap = new HashMap<String, String>();
        String name = "";
        String value = "";
        for (Map.Entry<String, String[]> entry : properties.entrySet()) {
    
    
            name = entry.getKey();
            String[] values = entry.getValue();
            if (null == values) {
    
    
                value = "";
            } else if (values.length>1) {
    
    
                for (int i = 0; i < values.length; i++) {
    
     //用于请求参数中有多个相同名称
                    value = values[i] + ",";
                }
                value = value.substring(0, value.length() - 1);
            } else {
    
    
                value = values[0];//用于请求参数中请求参数名唯一
            }
            returnMap.put(name, value);
            
        }
        return returnMap;
    }
    
}
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;

@SuppressWarnings("rawtypes")
public class ParameterMap extends HashMap implements Map {
    
    

	private static final long serialVersionUID = 1L;

	Map map = null;
	HttpServletRequest request;

	@SuppressWarnings("unchecked")
	public ParameterMap(HttpServletRequest request) {
    
    
		this.request = request;
		Map properties = request.getParameterMap();
		Map returnMap = new HashMap();
		Iterator entries = properties.entrySet().iterator();
		Map.Entry entry;
		String name = "";
		String value = "";
		while (entries.hasNext()) {
    
    
			entry = (Map.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);
			} else {
    
    
				value = valueObj.toString();
			}
			returnMap.put(name, value);
		}
		map = returnMap;
	}

	public ParameterMap() {
    
    
		map = new HashMap();
	}
    ......
}

前端

var data={
    
    "key1":"value1","key2":"value2"……}
$.ajax({
    
    
		type: 'get',
		url : 'xxx',
		data :data,
		dataType : 'json',
		contentType:"application/json",
		success : function(data) {
    
    
			console.log(data);
		},
	});

后台控制器

    @RequestMapping(value = "xxx")
	@ResponseBody
	public String getService(HttpServletRequest request) {
    
    
        ParameterMap pd = new ParameterMap(request); 
		String url=ParameterMap.getString("key1");
	    ParameterMap.remove("key1");
		String response=HttpUtils.URLPost(url,pd);	//此处HttpUtils.URLPost()方法省略
		return  response;
   }

猜你喜欢

转载自blog.csdn.net/u013240519/article/details/83018358