Struts資料驗證筆記 (轉)
資料驗證筆記:namespace prefix = o ns = "urn:schemas--com::office" />
實踐平臺:2000 Pro. Jbuilder9.0. . Struts1.0
1. 關鍵字:ApplicationRes.properties ActionForm ActionErrors ActionError
.xml
2. 大體步驟:可以在ActionForm的validate方法也可以在Action的perform方法中驗證。兩種方式的區別據說在於web.xml中把”validate”設定為”true”那麼在perform之前會先執行ActionForm的validate方法(我在實驗的時候發現web.xml的validate元素設定為false則無法執行,把這行刪掉也一樣會先執行validate方法,還不知道是為什麼)。在WEB.XML中設定資原始檔和驗證值;在資原始檔中設定錯誤處理需要顯示的提示;在Action或ActionForm類中編寫錯誤處理程式碼;在頁面的適當位置加入
3. 具體做法:
a) 在web.xml檔案中設定如下:
<>
資原始檔的的
b) 在WEB-INF目錄下的classes子目錄中建立ApplicationResources.properties檔案。
檔案的內容由成對的key和 value組成。比如,設定如下:
index.title=Struts Tutorial
index.title2=Struts教學
errors.header=
Errors
errors.footer=
error.a=
Field A can't be empty error.b=
Field B can't be empty
errors.header和errors.footer是出錯時struts自動加入的頭和尾。自己定義的錯誤就可以寫在下面error.a,error.b,等號後面是要顯示的內容。
c) 在Action中編寫錯誤處理的程式碼。
這裡用到兩個類ActionErrors和ActionError,他們都是包含在org.apache.struts.Action包裡。用ActionError生成新的錯誤,把所有的錯誤儲存在一個類似ArrayList的ActionErrors裡。最後動態生成ActionForward物件,以返回原頁面。
ActionErrors errors = new ActionErrors(); //生成新的錯誤物件容器
if( form.getA().equals("") || form.getA()==null ) { //如果有錯誤
ActionError error = new ActionError("error.a"); //生成新錯誤
errors.add(ActionErrors.GLOBAL_ERROR, error); //加入到錯誤容器中
}
if( !errors.empty()) { //判斷錯誤容器是否為空,不空的話就要顯示出來
saveErrors(httpServletRequest, errors ); //儲存錯誤
String str = actionMap.getInput(); //得到使返回的ActionForward
return new ActionForward(str); //返回原頁面
}
如果要在ActionForm中驗證,把這些語句寫在其validate方法中,並且不需要saveErrors及其後面的語句,直接把errors作為返回值返回就可以了。
d) 在頁面中顯示錯誤提示
顯示錯誤的頁面就是前面ActionForward所返回的頁面,也就是按了submit後forward到這個Action的jsp檔案。當然也可以定義成別的jsp檔案,但是上面的程式碼就要改一改。
在頁面的適當位置(一般是表單上方)加入標誌
那麼,當有錯誤發生時(在Action裡判斷的),就會按照資原始檔裡的設定顯示出錯誤提示。
如上面的ApplicationResources.properties 所示,就會象下面這樣:
Errors
· Field A can't be empty
e) 進階
另一種使用了.text.MessageFormat類,可在訊息中指定替換字串,例如:
error.invalid=Invalid Number{0}
建立一個錯誤訊息:
ActionError error = new ActionError(‘error.invalid’,new Double(-1));
JSP頁顯示:Invalild Number –1
還有獲得特定訊息的錯誤關鍵字:
public String getKey()
還有獲得替換字串陣列:
public String[] getValues()
效果示例:
輸入表單:
JBuilder Generated Struts JSP for ActionFovalidation.MyForm
出錯後返回並提示:
JBuilder Generated Struts JSP for ActionForm validation.MyForm
Errors
- Field A can't be empty
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752019/viewspace-982706/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Struts2教程4:使用validate方法驗證資料
- Struts2教程5:使用Validation框架驗證資料框架
- Struts框架_9 Struts2的驗證框架
- 表單驗證——筆記筆記
- struts2資料校驗
- 資料庫課程作業筆記 - 編寫表單驗證資料庫筆記
- Struts 驗證框架 配置和使用框架
- 【原創】Struts1.x系列教程(2):簡單的資料驗證
- Vue筆記之props驗證Vue筆記
- KgCaptcha驗證碼實現筆記GCAPT筆記
- Django學習筆記—驗證碼Django筆記
- 資料驗證的asp.net程式 (轉)ASP.NET
- swoft 學習筆記之驗證器筆記
- 【日常筆記】生成驗證碼圖片筆記
- validator 驗證框架(學習筆記)框架筆記
- Struts學習筆記zz筆記
- struts2筆記(一)筆記
- Struts 2.0 解讀筆記筆記
- Struts2筆記10 向值棧放入或獲取資料筆記
- Struts2筆記06 封裝獲取表單資料方式筆記封裝
- 驗證資料是否存在
- 表單資料驗證
- [新手開發記錄] 驗證資料的測試
- angular學習筆記(二十)-表單驗證Angular筆記
- 資料庫課程作業筆記 - 驗收資料庫筆記
- struts2學習筆記–使用struts2外掛實現ajax處理(返回json資料)筆記JSON
- 使用正規表示式進行xml資料驗證(轉)XML
- beego表達資料驗證Go
- MVC 後設資料驗證MVC
- 資料結構學習筆記(一) (轉)資料結構筆記
- Symfony2學習筆記之資料校驗筆記
- ESMTP身份驗證機制探索手記 (轉)
- struts 日誌包(學習筆記)筆記
- Laravel 的表單驗證 , 如何做到驗證並改變 ( 轉換 ) 資料 ?( 使用中介軟體 )Laravel
- 使用Ccscan進行資料字符集轉換驗證(上)
- 使用Ccscan進行資料字符集轉換驗證(下)
- 使用表單驗證,建立資料驗證層,Ajax 統一返回驗證錯誤資訊
- thinkphp驗證器獲取$data資料,自定義驗證,多條件唯一性驗證unique驗證PHP