2018-06-03 22:26:41 +08:00

113 lines
3.7 KiB
Java

package com.tenwa.workflow;
import java.net.URLDecoder;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import org.apache.commons.lang.StringUtils;
public class QueryUtil {
public static Map<String, String> getRequestParameterMapByAjax(HttpServletRequest request) {
Map<String,String> model = getSessionAttributesMap(request);
try {
model.putAll(getRequestParameterMapByAjax(request, null));
} catch (Exception e) {
}
return model;
}
public static Map<String,String> getSessionAttributesMap(HttpServletRequest request){
Map<String, String> model = new HashMap<String, String>();
HttpSession session = request.getSession(false);
Enumeration<?> attributeNamesEnum = session.getAttributeNames();
while (attributeNamesEnum.hasMoreElements()) {
Object keyObj = attributeNamesEnum.nextElement();
if (keyObj instanceof String) {
String key = StringUtil.nullToString(keyObj);
if (!key.isEmpty()) {
Object valueObj = session.getAttribute(key);
String value = StringUtil.nullToString(valueObj);
if (!value.isEmpty()) {
model.put(key, value);
}
}
}
}
return model;
}
public static Map<String, String> getRequestParameterMapByAjax(HttpServletRequest request, String fieldPrefixRemove) throws Exception {
Map<String,String> model = getSessionAttributesMap(request);
model.putAll(getRequestParameterMapByAjax(request, fieldPrefixRemove, true));
return model;
}
public static Map<String, String> getRequestParameterMapByAjax(HttpServletRequest request, String fieldPrefixRemove, boolean decodeURL)
throws Exception {
Map<String,String> model = getSessionAttributesMap(request);
model.putAll(getRequestParameterMapByAjax((Map<String, String[]>) request.getParameterMap(), fieldPrefixRemove, decodeURL));
return model;
}
public static Map<String, String> getRequestParameterMapByAjax(Map<String, String[]> requestParameterMap, String fieldPrefixRemove,
boolean decodeURL) {
String prefixRemove = "";
if (fieldPrefixRemove != null && !"".equals(fieldPrefixRemove))
prefixRemove = fieldPrefixRemove;
if (requestParameterMap == null) {
return new HashMap<String, String>();
}
Map<String, String> parameters = new HashMap<String, String>(requestParameterMap.size());
for (Iterator<String> keys = requestParameterMap.keySet().iterator(); keys.hasNext();) {
String key = keys.next();
if (StringUtils.isBlank(key)) {
continue;
}
String entityFieldName = key;
if (!"".equals(prefixRemove) && entityFieldName.startsWith(prefixRemove)) {
entityFieldName = key.substring(prefixRemove.length());
}
String[] values;
Object valuesObj = requestParameterMap.get(key);
if (valuesObj instanceof String) {
values = new String[] { (String) valuesObj };
} else {
values = (String[]) valuesObj;
}
Object value = ((values == null) ? null
: (values.length == 1 ? (Object) values[0] : ("[" + StringUtil.join(values, ",") + "]")/* (Object) values */));
String strValue = StringUtil.nullToString(value);
if (strValue.isEmpty()) {
parameters.put(entityFieldName, null);
continue;
}
try {
if (decodeURL) {
/*if(!"xmlFileName".equals(entityFieldName)){
strValue=strValue.replaceAll("%", "%25");
}*/
parameters.put(entityFieldName, URLDecoder.decode(strValue ,"UTF-8") );
} else {
parameters.put(entityFieldName, strValue);
}
} catch (Exception e) {
try{
parameters.put(entityFieldName, URLDecoder.decode(strValue.replaceAll("%", "%25") ,"UTF-8"));
}catch(Exception e1){
e1.printStackTrace();
}
}
}
return parameters;
}
}