前几天项目需求获取多个同类name的值,在网上找了老半天,今天整理一下发布出来,希望对像我们这种记忆力不好的同学有所帮助。
好了话不多说直接上代码:
/**
* 参数解释
* request 不多说
* param 需要匹配name的模糊字符串
* isFull 是否返回完整的name名字
*/
private static Map<String, String> logger(HttpServletRequest request,
String param,boolean isFull) {
HashMap hm = new HashMap();
String param,boolean isFull) {
HashMap hm = new HashMap();
//获取表单中所有具有name属性的对象
Enumeration enu = request.getParameterNames();
Enumeration enu = request.getParameterNames();
//通过Enumeration 的hasMoreElements()方法遍历
while (enu.hasMoreElements()) {
//nextElement()方法获取枚举的值,这里是name的完整名字
String str1 = (String) enu.nextElement();
//这里进行匹配
if (str1.startsWith(param)) {
if (str1.startsWith(param)) {
//根据isFull值决定key对象的名字
String str2 = isFull ? str1 : str1.substring(param.length());
String str2 = isFull ? str1 : str1.substring(param.length());
//获取匹配的参数值
String str3 = StringUtils.join(request.getParameterValues(str1), ',');
hm.put(str2, str3);
}
}
String str3 = StringUtils.join(request.getParameterValues(str1), ',');
hm.put(str2, str3);
}
}
//返回匹配参数值map的集合,key为需要的名字,value为值
return hm;
}
return hm;
}