一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務器之家 - 編程語言 - JAVA教程 - Struts2中validate數據校驗的兩種方法詳解附Struts2常用校驗器

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

2020-06-09 12:21Java.Sheng JAVA教程

這篇文章主要介紹了Struts2中validate數據校驗的兩種方法及Struts2常用校驗器,本文介紹的非常詳細,具有參考借鑒價值,感興趣的朋友一起看看吧

 1.Action中的validate()方法

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

validate()方法會在execute()方法執行前執行,僅當數據校驗正確,才執行execute()方法, 如錯誤則將錯誤添加到fieldErrors域中,如果定義的Action中存在多個邏輯處理方法,且不同的處理邏輯需要不同的校驗規則,這種情況下validate()會對所有處理邏輯使用相同的校驗規則,為了實現不同的校驗邏輯,需要通過validateX()方法,其中X表示處理邏輯的方法名。

Action類:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
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

?
1
2
3
4
5
6
7
8
9
<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

?
1
2
3
<body>
登錄成功 <s:property value="account"/>
</body>

validateLogin.jsp

?
1
2
3
<body>
<s:fielderror/>
</body>

運行結果(第一次測試正確,第二次測試錯誤)

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

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

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

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?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>

再次運行結果為:

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

上述字段校驗方式為字段校驗方式,還有一種方式是非字段校驗方式,如下:

Login-validation.xml:

?
1
2
3
4
5
6
7
8
9
10
<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常用校驗器:

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

原文鏈接:http://blog.csdn.net/woaigaolaoshi/article/details/50961505

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 毛片免费全部免费观看 | 四虎传媒 | 成成人看片在线 | 九色PORNY真实丨国产大胸 | 美女脱了内裤让男生玩屁股 | 亚洲欧洲淘宝天堂日本 | 成人男女网免费 | 很黄的网站在线观看 | 奇米激情| 日本高免费观看在线播放 | 色花堂国产精品首页第一页 | a一区二区三区视频 | 日韩亚洲人成在线 | 国产情侣视频观看 | 色哟哟久久| 4438全国最大成人网视频 | ova催眠性指导5最新在线 | 日韩免费视频播放 | 97自拍视频在线观看 | 免费观看一级欧美在线视频 | 5555kkkk香蕉在线观看 | 日本漫画被黄漫免费动 | 香蕉在线精品一区二区 | av毛片免费看 | 国产一区二区免费在线 | 日本一区二区视频在线观看 | 久久成人伊人欧洲精品AV | 动漫人物差差插曲漫画 | 免费观看一级特黄三大片视频 | 国产日韩欧美色视频色在线观看 | 青青草伊人久久 | 亚洲国产一区 | 国产靠逼视频 | 亚洲国产精品日本无码网站 | 色婷婷婷婷 | 恩不要好大好硬好爽3p | 欧美国产日本精品一区二区三区 | 色婷婷天天综合在线 | bestialitysex杂交 bedfriend泰剧全集免费观看 | 欧美成人乱弄视频 | 95在线观看精品视频 |