程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> JSP編程 >> 關於JSP >> struts2 18攔截器詳解(十三)

struts2 18攔截器詳解(十三)

編輯:關於JSP

MultiselectInterceptor      該攔截器處理defaultStack第十二的位置,是用於處理select標簽沒有一個option被選中的情況,這個攔截器的邏輯與CheckboxIntercept攔截器非常類似,幾乎是一模一樣的。當一個select標簽(multiple="multiple")沒有一個option被選中的時候就相當於沒有這個select標簽,這就出現了與checkbox類似的情況。因為該攔截器與CheckboxInterceptor攔截器幾乎是一樣的,所以這裡簡單講一下: [java]   public String intercept(ActionInvocation actionInvocation) throws Exception {       Map parameters = actionInvocation.getInvocationContext().getParameters();//獲取請求參數Map       Map<String, Object> newParams = new HashMap<String, Object>();       Set<String> keys = parameters.keySet();//請求參數key集合       for (Iterator<String> iterator = keys.iterator(); iterator.hasNext();) {           String key = iterator.next();           if (key.startsWith("__multiselect_")) {//判斷key是否以__multiselect_開關               String name = key.substring("__multiselect_".length());               //從請求參數Map中移出當前參數               iterator.remove();               //如果沒有選中的option               if (!parameters.containsKey(name)) {                   //添加一個長度為0的String[]到newParams中                   newParams.put(name, new String[0]);               }           }       }       //把newParams添加到請求參數Map中       parameters.putAll(newParams);       //調用下一個攔截器       return actionInvocation.invoke();   <span style="font-size:14px">}</span>    

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved