初學structs2,表單驗證

2022-09-15 03:24:10 字數 2080 閱讀 2287

一、簡單表單驗證示例

structs.xml配置

<

struts

>

<

package

name

="validate"

namespace

="/validate"

extends

="struts-default"

>

<

action

name

="validatedemo"

class

="cn.hjp.validate.validatedemo"

>

<

result

name

="success"

type

="dispatcher"

>/validate/index.jsp

result

>

<

result

name

="input"

type

="dispatcher"

>/validate/index.jsp

result

>

action

>

package

>

struts

>

前端index頁面部分**:fielderror顯示錯誤資訊,如果前端頁面html標籤是使用的structs2標籤構成,則可以不使用fielderror標籤也能顯示,如下面注釋中**

<%

@ taglib prefix="

s"uri=

"/struts-tags

"%>

<

body

>

<

form

action

="/struts2-demo/validate/validatedemo.action"

method

="post"

>

<

input

type

="text"

name

="name"

/><

input

type

="submit"

value

="提交"

/>

form

>

<

s:fielderror

fieldname

="name"

/>

body

>

驗證判斷**寫在validate方法中

public

class validatedemo extends

actionsupport

public

void

setname(string name)

@override

public string execute() throws

exception

@override

public

void

validate()

//驗證的不是字段,沒有指定欄位的驗證錯誤,也就是業務型錯誤,就根據情況使用下面兩個,而前端頁面對應新增和structs2標籤元素

addactionerror("action錯誤");//action錯誤

addactionmessage("提示資訊");//提示資訊

} 

}

使用structs2的標籤構造的html元素時,自定義出現型別錯誤的顯示資訊

比如,後台年齡欄位為整數型別,如果填寫成了字元型別,則會報錯「invalid field value for field "age"」;

自定義提示錯誤資訊的方式就是在相應的action包下,新建相應action名稱命名的properties檔案,檔案內制定對應字段及其錯誤資訊,示例如下

validatedemo.properties檔案,內容invalidate.fieldvalue.age="年齡字段型別錯誤"

初學structs2,表單驗證簡單補充

一 使用註解方式,跳過驗證某個方法 由於在開發中,我們不需在請求每乙個action類中的方法時都要走validate方法,那麼我們可以在這些不需要驗證的方法上加上 skipvalidation註解即可 二 不重寫validate方法下,通過使用validate或validatedo字首來指定類中哪個...

初學structs2,簡單配置

一 structs2 demo1專案下新建structs.xml檔案,檔名必須是structs 二 package節點配置及其子節點配置 index.jsp 三 在web.xml檔案下新增filter並配置 struts2 org.apache.struts2.dispatcher.ng.filte...

Structs2 命名空間

在學習structs2的過程中,遇到了namsapce,雖然比較好理解,但是在使用的過程中還是遇到些問題,便將其記錄下來。作用 為了解決包含同乙個action的問題,在相同的命名空間裡不能存在相同的action,但是不同的命名空間裡,可以存在相同的action。須知 structs2不支援單獨為ac...