先說說我的問題吧:
最近專案使用了struts2的校驗(其實我覺得後台校驗,特別是struts的校驗,完全可以放在其他地方處理,比如交給js或者業務邏輯),而且系統剛好還使用了extjs,此時問題出現了:假如提交資料後,struts校驗沒有通過,那麼struts會自動返回input,而extjs提交資料方式都是ajax,根本就不理會struts 的返回值,然後系統就會報錯,頁面也不可能顯示校驗失敗的相關資訊,
針對此種情況,一種處理方式是在struts.xml中增加input結果集,重定向到另乙個action處理,然後給頁面返回ajax請求的結果,但是頁面不會顯示校驗失敗的相關資訊.如何能解決頁面顯示校驗失敗的詳細資訊呢?
上網查了一下,發現struts2新版本的interceptor支援返回結果集的預處理監聽函式(舉個例子:在action方法返回乙個input後,我能在***中攔截到你返回了input檢視),我們只需實現此介面,然後在***中加入監聽即可.
看**:
public class exceptioninterceptor extends abstractinterceptor catch (exception e)
}}
//實現介面: preresultlistener
class mystrutslistener implements preresultlistener
}// 頁面回寫json
try ");
writer.flush();
writer.close();
} catch (ioexception e1) }}
}
最後在前台解析接收到的json資料,反饋給使用者,效果與struts校驗失敗後的提示資訊一模一樣。^_^
簡單解釋:假如攔截到input,就從struts的棧中取出乙個校驗失敗的資訊,然後返回給頁面,
以上為個人見解,難免有不周的地方
Struts 2 之校驗器
對於輸入校驗,struts2提供了兩種方式,1 使用validate方法 2 基於xml配置實現 支援校驗的action必須實現validateable介面,一般直接繼承actionsupport就可以了 public void validate if mobile null equals this...
Struts2校驗之數字,日期校驗
struts2編寫驗證規則配置檔案驗證資料時,出現乙個問題,如果輸入的字段是字段是資料或日期時,比如說我的配置檔案中寫了這麼兩個驗證 輸入非數字資訊點提交時,出現的不是在配置檔案所定義的提示資訊,後來跟蹤 時發現org.apache.struts2.interceptor.strutsconvers...
struts2輸入校驗
struts2輸入校驗主要分為兩種 1 實現校驗 action需要繼承actionsupport,並在action重寫validate 方法,在validate方法中,根據頁面的相應元素名稱進行相關校驗,如果校驗不通過,呼叫this.fielderror 頁面元素name,出錯提示資訊 然後返回in...