国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

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

2019-11-26 13:53:47
字體:
供稿:網(wǎng)友

 1.Action中的validate()方法

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

validate()方法會在execute()方法執(zhí)行前執(zhí)行,僅當數(shù)據(jù)校驗正確,才執(zhí)行execute()方法, 如錯誤則將錯誤添加到fieldErrors域中,如果定義的Action中存在多個邏輯處理方法,且不同的處理邏輯需要不同的校驗規(guī)則,這種情況下validate()會對所有處理邏輯使用相同的校驗規(guī)則,為了實現(xià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>

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

這里寫圖片描述

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

2.通過XWork校驗框架

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

在com.action包下創(chuàng)建驗證文件LoginAction-validation.xml,注:當一個Action中有多個業(yè)務(wù)處理方法是,命名規(guī)則為:actionName-methodName-validation.xml,其中actionName為Action類名,methodName為Action中某個業(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>

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

這里寫圖片描述

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

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é)果與字段校驗方式一樣

附:Struts2常用校驗器:

這里寫圖片描述

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 渭源县| 万宁市| 威信县| 沧州市| 蒙山县| 会宁县| 晋宁县| 巴南区| 温宿县| 抚顺县| 瑞金市| 红原县| 景洪市| 佛教| 阿拉尔市| 扎兰屯市| 白城市| 永兴县| 巴楚县| 卫辉市| 开原市| 泽库县| 潍坊市| 琼结县| 青冈县| 灵台县| 志丹县| 马龙县| 青州市| 汉阴县| 徐州市| 永丰县| 民勤县| 陆川县| 光山县| 绥棱县| 兖州市| 酒泉市| 通州区| 布拖县| 广水市|