在struts2中可以對action中的所有方法實現校驗,也可以針對指定方法進行校驗。
struts2中實現上述的校驗又可以分為手動編寫**實現和配置xml檔案方法
手動編寫**校驗
a.對所有和
execute方法簽名相同的方法進行校驗
通過重寫validate() 方法實現
validate()方法會校驗action中所有與execute方法簽名相同的方法。當某個數據校驗失敗時,我們應該呼叫addfielderror()方法往系統的fielderrors新增校驗失敗資訊(為了使用addfielderror()方法,action可以繼承actionsupport),如果系統的fielderrors包含失敗資訊,struts2會將請求**到名為input的result--此result用於返回到使用者輸入介面。在input檢視中可以通過顯示失敗資訊。
validate例子:
public void validate()
if (email == null || "".equals(email) || email.indexof("@") < 1
|| email.lastindexof(".") < 2
|| email.indexof("@") > email.lastindexof("."))
// 建立正規表示式格式編譯
patternper = pattern.compile("^1[358][0-9]$");
// 返回是否匹配成功
boolean isok = per.matcher(mobile).matches();
if (!isok)
super.validate();
}
驗證失敗後,請求**至input檢視:
/web-inf/page/adduser.jsp
在adduser.jsp頁面中使用顯示失敗資訊。
前提是要先在jsp頁面頭部引入struts標籤
<%@ taglib uri="/struts-tags"prefix="s" %>
b.對action指定方法輸入校驗
通過validate***()方法實現,validate***()只會校驗action中方法名為***的方法。其中***的第乙個字母要大寫。當某個資料校驗失敗時,我們應該呼叫addfielderror()方法往系統的fielderrors新增校驗失敗資訊(為了使用addfielderror()方法,action可以繼承actionsupport ),如果系統的fielderrors包含失敗資訊,struts2會將請求**到名為input的result。在input檢視中可以通過顯示失敗資訊。
如果action中有個login(
方法需要小寫
)的方法,校驗的時候只需要對login()方法進行校驗,則可以定義validatelogin()方法填寫響應的校驗**
在上面的例子中如果是只對登入進行校驗就可以將validate()方法的名字改為validatelogin()就可以了其他的都不需要改變了
xml配置校驗
a. xml配置對所有方法進行校驗
使用基於xml配置方式實現輸入校驗時,action也需要繼承actionsupport,並且提供校驗檔案,校驗檔案和action
類放在同乙個包下,檔案的取名格式為:actionclassname-validation.xml。
其中actionclassname為action的簡單類名,-validation為固定寫法。如果action類為action.useraction,那麼該檔案的取名應為:useraction-validation.xml。
下面是校驗檔案的模版:
<?xml version="1.0" encoding="utf-8"?>
各種校驗器
regex:正規表示式校驗器 在xml中的正則需要使用<![cdata[正規表示式]]>包含
name為需要校驗的字段屬性
type表示校驗的型別
手機格式不正確! //儲存錯誤的資訊
name為需要校驗的字段屬性
email格式不正確!
b.xml配置對指定方法進行校驗
當校驗檔案的取名為actionclassname-validation.xml時,會對 action中的所有處理方法實施輸入驗證。如果你只需要對action中的某個action方法實施校驗,那麼,校驗檔案的取名應為:actionclassname-actionname-validation.xml,其中actionname為struts.xml中action的名稱
總結:這和上面的xml配置校驗所有的方法很類似,xml檔案也是建立在校驗類的包中只是xml檔案的名字去的和action中需要校驗的方法有關而已,比如在struts.xml中有
/message.jsp
/adduser.jsp
useraction中有以下兩個處理方法:
public string add()throws exception
public string update()throws exception
要對add()方法實施驗證,校驗檔案的取名為: useraction-user_add-validation.xml
要對update()方法實施驗證,校驗檔案的取名為: useraction-user_update-validation.xml
struts2輸入校驗
struts2輸入校驗主要分為兩種 1 實現校驗 action需要繼承actionsupport,並在action重寫validate 方法,在validate方法中,根據頁面的相應元素名稱進行相關校驗,如果校驗不通過,呼叫this.fielderror 頁面元素name,出錯提示資訊 然後返回in...
Struts2輸入校驗
幾乎每乙個 web開發者都會遇到輸入校驗的問題,輸入校驗直接影響了系統的抗破壞效能和穩定性。輸入校驗往往同型別轉換聯絡在一起,在判斷使用者輸入資料的合法性之前,需要先進行型別轉換判斷,然後再進行輸入校驗處理。兩者都是對使用者輸入資料的規範化檢查和處理。struts2 框架為開發者的輸入校驗提供了良好...
Struts2輸入校驗
對於輸入校驗struts2提供了2種實現方法 1.採用手工編寫 實現 1 action要繼承actionsupport類,並且重寫validate方法,將錯誤資訊新增到addfielderror方法中 2 在頁面中利用struts2標籤將其 顯示出來,這樣可以對所有的action中所有的方法進行校驗...