Struts2輸入校驗

2021-06-10 11:09:08 字數 3225 閱讀 5509

在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中所有的方法進行校驗...