HttpServletRequest—————— /getParameterValues/getParameterNames()/getParameterValues
目录
HttpServletRequest—————— /getParameterValues/getParameterNames()/getParameterValues
()
1返回值类型为Map,>
2.返回值类型为Map,>
();
HttpServletRequest这个类的getParameter(name),getParameterValues(name)可以分别实现对页面传来的单个参数和对多个同名参数的接受。特别是getParameter(name)这个方法被用的次数特别多。有时候页面传来多个参数的情况下,要写多个(name)进行逐个接受,当然在springmvc框架下你可以在选择使用对象接受参数,也可以在方法上对参数进行逐个接收。但这样做的弊端在于在请求参数个数和名称变化的情况下,你需要创建不同的接受参数的对象进行接收,或者在你的方法上分别对参数进行接受(参数多的情况下,代码就显得很丑陋)。本文的目的在于使用 HttpServletRequest的getParameterMap()这个方法实现对请求参数的封装
()
1返回值类型为Map<String, Object>
import ;
import ;
import ;
import ;
import ;
public class RequestParamsToMap {
//返回值类型为Map<String, Object>
public static Map<String, Object> getParameterMap(HttpServletRequest request) {
Map<String, String[]> properties = ();//把请求参数封装到Map<String, String[]>中
Map<String, Object> returnMap = new HashMap<String, Object>();
Iterator<Entry<String, String[]>> iter = ().iterator();
String name = "";
String value = "";
while (()) {
Entry<String, String[]> entry = ();
name = ();
Object valueObj = ();
if (null == valueObj) {
value = "";
} else if (valueObj instanceof String[]) {
String[] values = (String[]) valueObj;
for (int i = 0; i < ; i++) { //用于请求参数中有多个相同名称
value = values[i] + ",";
}
value = (0, () - 1);
} else {
value = ();//用于请求参数中请求参数名唯一
}
(name, value);
}
return returnMap;
}
2.返回值类型为Map<String, String>
//返回值类型为Map<String, String>
public static Map<String, String> getParameterStringMap(HttpServletRequest request) {
Map<String, String[]> properties = ();//把请求参数封装到Map<String, String[]>中
Map<String, String> returnMap = new HashMap<String, String>();
String name = "";
String value = "";
for (<String, String[]> entry : ()) {
name = ();
String[] values = ();
if (null == values) {
value = "";
} else if (>1) {
for (int i = 0; i < ; i++) { //用于请求参数中有多个相同名称
value = values[i] + ",";
}
value = (0, () - 1);
} else {
value = values[0];//用于请求参数中请求参数名唯一
}
(name, value);
}
return returnMap;
}
}
代码就这么多,当然你要是想把得到的map集合转换成bean对象,可以使用 import ;类的(bean, map)方法实现对map向bean的转换,这个方法会根据map的key值和bean对象的属性进行自动匹配(此时,推荐使用第一个方法)
();
SortedMap<Object,Object> mapRequest = new TreeMap<Object,Object>();
Enumeration<String> paramNames = ();
while (()) {
String paramName = (String) ();
String[] paramValues = (paramName);
if ( == 1) {
String paramValue = paramValues[0];
if (() != 0) {
(paramName, paramValue);
}
}
}
String params = "";
for (<Object, Object> entry : ()) {
String key = ().toString();
String value = ().toString();
params += key+":"+value+"==";
}