欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Struts2中validate數(shù)據(jù)校驗(yàn)的兩種方法詳解附Struts2常用校驗(yàn)器

 更新時(shí)間:2016年09月02日 14:21:10   作者:Java.Sheng  
這篇文章主要介紹了Struts2中validate數(shù)據(jù)校驗(yàn)的兩種方法及Struts2常用校驗(yàn)器,本文介紹的非常詳細(xì),具有參考借鑒價(jià)值,感興趣的朋友一起看看吧

 1.Action中的validate()方法

Struts2提供了一個(gè)Validateable接口,這個(gè)接口中只存在validate()方法,實(shí)現(xiàn)這個(gè)接口的類可直接被Struts2調(diào)用,ActionSupport類就實(shí)現(xiàn)了Vadidateable接口,但他的validate()方法是一個(gè)空方法,需要我們來重寫。

validate()方法會(huì)在execute()方法執(zhí)行前執(zhí)行,僅當(dāng)數(shù)據(jù)校驗(yàn)正確,才執(zhí)行execute()方法, 如錯(cuò)誤則將錯(cuò)誤添加到fieldErrors域中,如果定義的Action中存在多個(gè)邏輯處理方法,且不同的處理邏輯需要不同的校驗(yàn)規(guī)則,這種情況下validate()會(huì)對(duì)所有處理邏輯使用相同的校驗(yàn)規(guī)則,為了實(shí)現(xiàn)不同的校驗(yàn)邏輯,需要通過validateX()方法,其中X表示處理邏輯的方法名。

Action類:

public class LoginAction extends ActionSupport{
private static final long serialVersionUID = 1L;
private String userName;
private String userPassword;
public String execute(){
System.out.println("execute");
return SUCCESS;
}
public String login(){
System.out.println("login");
return SUCCESS;
}
public void validate(){
System.out.println("validata");
}
public void validateLogin(){
System.out.println("validatelogin");
if(!(userName.equals("sbw") && userPassword.equals("123"))){
addFieldError("error","wrong info");
}
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getUserPassword() {
return userPassword;
}
public void setUserPassword(String userPassword) {
this.userPassword = userPassword;
}
}

struts.xml

<package name="main" extends="struts-default">
<global-results>
<result name="login">/login.jsp</result>
</global-results>
<action name="loginPerson" class="com.sbw.test.action.LoginAction" method="login">
<result name="success">/success.jsp</result>
<result name="input">/validateLogin.jsp</result>
</action>
</package>

success.jsp

<body>
登錄成功 <s:property value="account"/>
</body>

validateLogin.jsp

<body>
<s:fielderror/>
</body>

運(yùn)行結(jié)果(第一次測(cè)試正確,第二次測(cè)試錯(cuò)誤)

這里寫圖片描述

這里寫圖片描述
這里寫圖片描述

2.通過XWork校驗(yàn)框架

使用validate方法校驗(yàn)時(shí),如果Web應(yīng)用中存在大量Action就需要多次重寫validate方法,因此可以使用XWork的validator框架來對(duì)Struts2進(jìn)行數(shù)據(jù)校驗(yàn),減少代碼量。

在com.action包下創(chuàng)建驗(yàn)證文件LoginAction-validation.xml,注:當(dāng)一個(gè)Action中有多個(gè)業(yè)務(wù)處理方法是,命名規(guī)則為:actionName-methodName-validation.xml,其中actionName為Action類名,methodName為Action中某個(gè)業(yè)務(wù)處理方法的方法名,并且文件的搜索順序與方式一種validate()和validateX()一樣。

Login-validation.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE validators PUBLIC
"-//Apache Struts//XWork Validator 1.0.2//EN"
"http://struts.apache.org/dtds/xwork-validator-1.0.2.dtd">
<validators>
<field name="userName">
<field-validator type="requiredstring">
<message>the name should not null</message>
</field-validator>
</field>
<field name="userPassword">
<field-validator type="requiredstring">
<message>the password should not null</message>
</field-validator>
</field>
</validators>

再次運(yùn)行結(jié)果為:

這里寫圖片描述

上述字段校驗(yàn)方式為字段校驗(yàn)方式,還有一種方式是非字段校驗(yàn)方式,如下:

Login-validation.xml:

<validators>
<validator type="requiredstring">
<param name="fieldName">userName</param>
<message>name should not null</message>
</validator>
<validator type="requiredstring">
<param name="fieldName">userPassword</param>
<message>password should not null</message>
</validator>
</validators>

結(jié)果與字段校驗(yàn)方式一樣

附:Struts2常用校驗(yàn)器:

這里寫圖片描述

相關(guān)文章

最新評(píng)論