程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> Struts2中validate數據校驗的兩種辦法詳解附Struts2經常使用校驗器

Struts2中validate數據校驗的兩種辦法詳解附Struts2經常使用校驗器

編輯:關於JAVA

Struts2中validate數據校驗的兩種辦法詳解附Struts2經常使用校驗器。本站提示廣大學習愛好者:(Struts2中validate數據校驗的兩種辦法詳解附Struts2經常使用校驗器)文章只能為提供參考,不一定能成為您想要的結果。以下是Struts2中validate數據校驗的兩種辦法詳解附Struts2經常使用校驗器正文


 1.Action中的validate()辦法

Struts2供給了一個Validateable接口,這個接口中只存在validate()辦法,完成這個接口的類可直接被Struts2挪用,ActionSupport類就完成了Vadidateable接口,但他的validate()辦法是一個空辦法,須要我們來重寫。

validate()辦法會在execute()辦法履行前履行,僅當數據校驗准確,才履行execute()辦法, 如毛病則將毛病添加到fieldErrors域中,假如界說的Action中存在多個邏輯處置辦法,且分歧的處置邏輯須要分歧的校驗規矩,這類情形下validate()會對一切處置邏輯應用雷同的校驗規矩,為了完成分歧的校驗邏輯,須要經由過程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>

運轉成果(第一次測試准確,第二次測試毛病)



2.經由過程XWork校驗框架

應用validate辦法校驗時,假如Web運用中存在年夜量Action就須要屢次重寫validate辦法,是以可使用XWork的validator框架來對Struts2停止數據校驗,削減代碼量。

在com.action包下創立驗證文件LoginAction-validation.xml,注:當一個Action中有多個營業處置辦法是,定名規矩為:actionName-methodName-validation.xml,個中actionName為Action類名,methodName為Action中某個營業處置辦法的辦法名,而且文件的搜刮次序與方法一種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>

再次運轉成果為:

上述字段校驗方法為字段校驗方法,還有一種方法長短字段校驗方法,以下:

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>

成果與字段校驗方法一樣

附:Struts2經常使用校驗器:

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved