1. 程式人生 > >利用Enumeration批量處理request請求引數

利用Enumeration批量處理request請求引數

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都可以呼叫這個方法獲取引數!小技巧,供大家參考!

有什麼好的建議記得留言哦!