CreateTime--2017年8月25日16:30:11
Author:Marydon
struts2对获取前台提交参数的封装
需要导入:
import java.util.Enumeration;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts2.ServletActionContext;
方法封装
/**
* 获取HttpServletRequest对象
*
* @return HttpServletRequest
*/
public static HttpServletRequest getRequest() {
return (HttpServletRequest) ServletActionContext.getRequest();
} /**
* 获取前台提交的所有参数
*
* @return 有多个参数及值构成的Map
*/
public static Map getParameterMap() {
HttpServletRequest request = getRequest();
Map parametersMap = new HashMap();
// 获取请求中所有的参数名称,得到一个枚举对象
Enumeration paramters = request.getParameterNames();
// 遍历
while (paramters.hasMoreElements()) {
// 获取参数名
String name = (String) paramters.nextElement();
// 一个参数名可能对应多个参数值
String[] values = request.getParameterValues(name);
String value = "";
if (values != null) {
for (int i = 0; i < values.length; i++) {
// 多个参数值之间使用逗号拼接
value += values[i] + ',';
}
// 去掉最后一个逗号
value = value.substring(0, value.length() - 1);
// value=value.replaceAll(".*([';]+|(--)+).*", " ");
}
// 将该参数名、参数值添加到Map中
parametersMap.put(name, value.trim());
}
return parametersMap;
} /**
* 获取前台提交的参数:根据参数名返回对应的参数值
* @description 适用情况:已知参数名并且对应的值只有一个
* @param name
* 参数名
* @return 参数值
*/
public static String getParameter(String name) {
HttpServletRequest request = getRequest();
return getParameter(request, name);
} public static String getParameter(HttpServletRequest request, String name) {
String value = request.getParameter(name);
// value=value.replaceAll(".*([';]+|(--)+).*", "");
return value;
} /**
* 获取前台提交的参数:根据参数名返回对应的参数值
* @description 适用情况:已知参数名并且对应的值至少两个
* @param name
* 参数名
* @return 多个参数值构成的数组
*/
public static String[] getParameterValues(String name) {
HttpServletRequest request = getRequest();
return getParameterValues(request, name);
} public static String[] getParameterValues(HttpServletRequest request,
String name) {
return request.getParameterValues(name);
}