最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

 1.Action中的validate()方法

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

validate()方法會在execute()方法執(zhí)行前執(zhí)行,僅當數據校驗正確,才執(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>

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

這里寫圖片描述

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

2.通過XWork校驗框架

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

在com.action包下創(chuàng)建驗證文件LoginAction-validation.xml,注:當一個Action中有多個業(yè)務處理方法是,命名規(guī)則為:actionName-methodName-validation.xml,其中actionName為Action類名,methodName為Action中某個業(yè)務處理方法的方法名,并且文件的搜索順序與方式一種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常用校驗器:

這里寫圖片描述

相關文章

  • Java 內置Http Server構建web應用案例詳解

    Java 內置Http Server構建web應用案例詳解

    這篇文章主要介紹了Java 內置Http Server構建web應用案例詳解,本篇文章通過簡要的案例,講解了該項技術的了解與使用,以下就是詳細內容,需要的朋友可以參考下
    2021-09-09
  • Java輸入/輸出流體系詳解

    Java輸入/輸出流體系詳解

    這篇文章主要介紹了Java輸入/輸出流體系詳解,涉及字節(jié)流和字符流,輸入輸出體系,轉換流,以及文件的讀寫等相關內容,具有一定參考價值,需要的朋友可以了解下。
    2017-11-11
  • Java通過值查找對應的枚舉的實現(xiàn)

    Java通過值查找對應的枚舉的實現(xiàn)

    本文主要介紹了Java通過值查找對應的枚舉的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-02-02
  • Spring中Feign的調用流程詳解

    Spring中Feign的調用流程詳解

    這篇文章主要介紹了Spring中Feign的調用流程詳解,分析過了創(chuàng)建的代理是FeignInvocationHandler,那我們就打斷點,停在它的反射方法上,看看到底做了什么,需要的朋友可以參考下
    2023-11-11
  • Java掃描文件夾下所有文件名

    Java掃描文件夾下所有文件名

    這篇文章主要為大家詳細介紹了Java掃描文件夾下所有文件名,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-02-02
  • 詳細解釋什么是 Spring Bean(示例詳解)

    詳細解釋什么是 Spring Bean(示例詳解)

    Spring Bean 是由 Spring IoC 容器管理的對象實例,也是 Spring 框架的基本組件之一,本文通過示例代碼介紹Spring Bean 的作用域(Bean Scope)的相關使用方法,感興趣的朋友一起看看吧
    2023-09-09
  • SpringBoot自動裝配原理詳解

    SpringBoot自動裝配原理詳解

    這篇文章主要詳細介紹了SpringBoot的自動裝配原理,文中通過代碼示例介紹的非常詳細,需要的朋友可以參考一下
    2023-04-04
  • Layui 后臺加載菜單欄名稱以及url的例子

    Layui 后臺加載菜單欄名稱以及url的例子

    今天小編就為大家分享一篇Layui 后臺加載菜單欄名稱以及url的例子,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-09-09
  • Kotlin中使用Java數據類時引發(fā)的Bug解決方式

    Kotlin中使用Java數據類時引發(fā)的Bug解決方式

    這篇文章主要介紹了Kotlin中使用Java數據類時引發(fā)的一個Bug,本文給大家分享問題解決方式,感興趣的朋友跟隨小編一起看看吧
    2023-09-09
  • mybatis的大于小于號轉義符號一覽

    mybatis的大于小于號轉義符號一覽

    這篇文章主要介紹了mybatis的大于小于號轉義符號一覽,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-08-08

最新評論

海阳市| 石狮市| 通城县| 正宁县| 松桃| 龙胜| 固镇县| 穆棱市| 新竹县| 柳州市| 龙州县| 民乐县| 信丰县| 陵水| 广饶县| 湄潭县| 修水县| 白水县| 襄城县| 瑞安市| 峨眉山市| 洪雅县| 镶黄旗| 河源市| 高平市| 藁城市| 华坪县| 石城县| 蒙阴县| 遵义市| 京山县| 佛山市| 象州县| 长治县| 固原市| 绥江县| 炎陵县| 澳门| 磴口县| 哈巴河县| 安宁市|