113 lines
3.7 KiB
Java
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;
|
|
}
|
|
|
|
|
|
}
|