利用Enumeration批量處理request請求引數
阿新 • • 發佈:2018-12-12
1.什麼是Enumeration
Enumeration介面本身不是一個數據結構。但是,對其他資料結構非常重要。 Enumeration介面定義了從一個數據結構得到連續資料的手段。例如,Enumeration定義了一個名為nextElement的方法,可以用來從含有多個元素的資料結構中得到的下一個元素。 Enumeration介面提供了一套標準的方法,由於Enumeration是一個介面,它的角色侷限於為資料結構提供方法協議。下面是一個使用的例子: //e is an object that implements the Enumeration interface while (e.hasMoreElements()) { Object o= e.nextElement(); System.out.println(o); }
2.批量接受request請求的方法
原理很簡單,request.getParameterNames獲取所有的請求引數名,然後利用Enumeration特性獲取對應的值,加上邏輯判斷,最後轉化為JSON物件返回!
public static JSONObject convertRequestParametersToJSONObject(final HttpServletRequest request, final String prefix) { JSONObject result = new JSONObject(); Enumeration<String> paramNames = request.getParameterNames(); while (paramNames.hasMoreElements()) { String paramName = paramNames.nextElement(); String[] paramValue = request.getParameterValues(paramName); if (paramName.startsWith(prefix)) { paramName = paramName.substring(prefix.length()); } if (paramValue.length == 0) { result.put(paramName, null); } else if (paramValue.length == 1) { result.put(paramName, paramValue[0]); } else { result.put(paramName, paramValue); } } return result; }
這樣做的好處就是每一個action都可以呼叫這個方法獲取引數!小技巧,供大家參考!