1. 程式人生 > >Struts2的資料校驗

Struts2的資料校驗

1.資料的校驗分成前臺和後臺兩種方式:
    JavaScript可以在前臺完成校驗,但是這種方式主要是提升使用者的體驗,依然可以繞行至後臺程式中。
    後臺的資料校驗,在Servlet/Action中做資料的校驗。

2.Struts2框架中資料校驗的方法:
    手動編碼校驗

配置檔案校驗

手動編碼校驗

1.編寫Action接收請求引數,該Action必須繼承ActionSupport類
    public class UserAction extends ActionSupport implements ModelDriven<User> {
        private User user = new User();

        @Override
        public User getModel() {
            return user;
        }

        public String register() {
            System.out.println("註冊成功");
            return SUCCESS;
        }
    }

    因為校驗的實現需要用到ActionSupport類中的一些方法,所以必須繼承它。

2.重寫validate()方法,使用addFieldError()方法新增錯誤資訊
    @Override
    public void validate() {
        if (user.getUsername().length() == 0) {
            addFieldError("usernameError", "使用者名稱不能為空");
        }
        if (user.getPassword().length() == 0) {
            addFieldError("passwordError", "密碼不能為空");
        }
        if (user.getAge() <= 0) {
            addFieldError("ageError", "年齡非法");
        }
    }

    validate()方法是執行在其他方法(register)之前的,如果validate()中執行過addFieldError()方法,則不會再去執行後續方法(register),而是跳轉到INPUT檢視。
    validate()方法會校驗所在Action中的所有方法,如果想要校驗指定方法,可以手動在Action中編寫一個方法,方法名稱是validate方法名稱(),例如:validateRegister()。

3.配置INPUT檢視
    <action name="register" class="action.UserAction" method="register">
        <result name="success">/index.jsp</result>
        <result name="input">/register.jsp</result>
    </action>

    input檢視通常都是轉發回到原頁面。

4.完成JSP頁面程式碼,使用<s:fielderror/>標籤顯示錯誤資訊
    <s:fielderror/>
    <form action="${ pageContext.request.contextPath }/user/register" method="post">
        姓名:<input type="text" name="username" /><br/>
        密碼:<input type="password" name="password" /><br/>
        年齡:<input type="text" name="age" /><br/>
        <input type="submit" value="註冊" />
    </form>

    s標籤是struts特有的標籤,使用時需要匯入標籤庫,匯入方式與jstl相同。
    <s:fielderror/>展示的是所有錯誤資訊,如果想展示某個錯誤資訊,可以使用標籤內的fieldName屬性指定,比如<s:fielderror fieldName="ageError"/>

程式碼校驗不適用於大型專案,資料複雜時,開發量和維護量都會很大
配置檔案校驗
1.編寫Action接收請求引數,該Action必須繼承ActionSupport類
    public class UserAction extends ActionSupport implements ModelDriven<User> {
        private User user = new User();

        @Override
        public User getModel() {
            return user;
        }

        public String register() {
            System.out.println("註冊成功");
            return SUCCESS;
        }
    }

    因為校驗的實現需要用到ActionSupport類中的一些方法,所以必須繼承它。

2.配置INPUT檢視
    <action name="register" class="action.UserAction" method="register">
        <result name="success">/index.jsp</result>
        <result name="input">/register.jsp</result>
    </action>

    input檢視通常都是轉發回到原頁面。

3.編寫校驗規則xml檔案UserAction-validation.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE validators PUBLIC "-//Apache Struts//XWork Validator 1.0.3//EN" "http://struts.apache.org/dtds/xwork-validator-1.0.3.dtd">
    <validators>
        <field name="username">
            <field-validator type="requiredstring">
                <message>使用者名稱不能為空</message>
            </field-validator>
            <field-validator type="stringlength">
                <param name="minLength">6</param>
                <param name="maxLength">10</param>
                <message>使用者名稱在6-10位之間</message>
            </field-validator>
        </field>
        <field name="password">
            <field-validator type="requiredstring">
                <message>密碼不能為空</message>
            </field-validator>
        </field>
    </validators>

    該配置檔案必須與所校驗的Action在同一包下,命名規則為:Action類名-validation.xml。
    需要配置本地約束。
    該校驗器會校驗對應Action中的所有方法,如果想要校驗某個方法,則將配置檔名改為:Action類名-方法對應的訪問路徑-validation.xml,例如:UserAction-register-validation.xml。

相關推薦

struts2 資料

struts2 後端資料校驗有兩種方式,一種是通過action類繼承ActionSupport類實現,另一種則是通過校驗框架實現。 一、繼承ActionSupport類 按照慣例,先編寫pojo類、jsp頁面以及action處理類,具體如下 public c

Struts2資料功能實現

前言 資料校驗一般是校驗表單項的內容。 而驗證的主要通過: 前臺驗證:主要是通過JS驗證資料是否合法! 後臺驗證:通過後臺java程式碼進行驗證! 那麼,本文主要介紹後端Struts校驗的實現。 回顧之前的資料驗證,主要是在業務邏輯程式碼之前增加if

struts2資料4

如果一個類裡面有多個方法,為每個方法進行不同的驗證。1.在struts.xml定義 <action name="regist2" class="fq.registerAction1" method="abc"> <result>/welcome.jsp

struts2資料1

假設有一個表單提交給action的Log方法,如果我需要校驗的話,就定義一個ValidateLog()方法就好了,這樣在執行Log方法之前就會執行ValidateLog方法,在這個方法裡面可以進行資料校

Struts2——資料

程式設計式校驗(伺服器端) 在action中編寫校驗程式碼 步驟: 1、action繼承ActionSupport類,並實現其中的validate()方法; 2、在struts.xml中配置action,可以選擇通過在jsp介面新增來顯示,也可通過對

Struts2資料(2)--使用XWork檢驗框架實現

2.使用XWork檢驗框架實現校驗 通過XWork的validator框架也可以進行Struts2的資料校驗,使用XWork的validator框架實現資料校驗,只需編寫一個驗證檔案便可。 1.驗證檔案 驗證檔案由兩種:一種是actionName-validation.xm

Struts2資料

1.資料的校驗分成前臺和後臺兩種方式: JavaScript可以在前臺完成校驗,但是這種方式主要是提升使用者的體驗,依然可以繞行至後臺程式中。 後臺的資料校驗,在Servlet/Action中做資料的校驗。 2.Struts2框架中資料校驗的方法:

struts2簡單資料

<span style="font-size:18px;"><%@ page language="java" import="java.util.*" pageEncoding="U

Struts2學習筆記(十)——資料

Struts2的資料校驗屬於伺服器端校驗,Struts2 支援校驗方式 : 手動校驗(程式碼校驗) :在伺服器端通過編寫java程式碼,完成資料校驗自動校驗(配置校驗) :XML配置校驗(主流) 和 註解配置校驗 1、手動校驗    1)Struts2的手動校驗步驟:

Struts2學習總結(3)--值棧,Ognl表示式,Struts標籤庫,國際化,資料,攔截器

本文包括以下五個部分: 值棧。Ognl表示式。struts2標籤庫。國際化。表單資料校驗攔截器。struts2的執行過程。一、值棧 採用servlet和JSP開發時,servlet通過域物件儲存資料,在JSP頁面通過jstl標籤+el表示式獲取資料。 採用struts2和

struts2資料

一、Struts2輸入校驗介紹 Struts2的輸入校驗和型別轉換都是對請求引數進行處理。 輸入校驗顧名思義就是請求引數是否能夠滿足一定的要求; 客戶端校驗&伺服器端校驗 客戶端校驗是指在瀏覽器這端通過JavaScript進行初步校

Struts2 入門4 資料_型別轉換_國際化

一.資料校驗前臺校驗:客戶段校驗主要通過JavaScript,效率高,但不安全.後臺校驗:伺服器校驗這裡是struts2通過xml配置/java程式碼.效率比較低,但安全.1.Struts2資料校驗a.

Struts2慢慢學之六----簡單的資料

資料校驗是在專案開發中不可缺少的一部分,使用者登入時、密碼驗證時都需要,當然要做的首先是獲得使用者輸入的內容,然後對內容進行驗證,一般都是從資料庫中讀出然後校驗,如果錯誤則顯示提示資訊,正確則進入使用者主介面。 下面用一個簡單小例子來說明下步驟: 1、index的表單 &l

.Java程式設計師從笨鳥到菜鳥之(四十一)細談struts2(五)action基礎知識和資料

一:首先看一下struts2中action的實現方式: 1.建立普通的pojo類:這種方式能夠實現簡單的action功能,但struts2內自帶的一些驗證和其他功能不能夠實現 2.繼承ActionSupport類實現action,因為ActionSupport已經實現了Action介面,還實現了Vali

Struts2+Hibernate】資料功能+修改密碼系統

對於之前Struts2的資料校驗學習進一步深化,但是還有當Struts2在資料校驗的時候,涉及型別轉換的部分的坑還沒有填,就是本該輸入整型的文字框,當用戶輸入了一個字串,這樣的問題處理還沒有進行深究。本篇的使用者名稱與密碼的文字框都是輸入容納字串的文字框,基本輸入任何東西都

Struts2之validate資料兩種方式

1.Action中的validate()方法 Struts2提供了一個Validateable介面,這個介面中只存在validate()方法,實現這個介面的類可直接被Struts2呼叫,ActionSupport類就實現了Vadidateable介面,但他的v

SpringMVC資料註解

@AssertFalse 被註解的元素必須為false @AssertTrue 被註解的元素必須為false @DecimalMax(value) 被註解的元素必須為一個數字,其值必須小於等於指定的最小值 @DecimalMin(Value) 被註解的元素必須為一個數字,其值必須大於等於指定的最小值 @Dig

springboot學習第八章:統一異常,資料處理

springboot中,預設在傳送異常時,會跳轉值/error請求進行錯誤的展現,根據不同的Content-Type展現不同的錯誤結果,如json請求時,直接返回json格式引數。   瀏覽器訪問異常時:   使用postman訪問時:  

Java應用中的資料

翻譯:吳嘉俊 ,叩丁狼高階講師。   [譯者注:這篇文章是開源專案CUBA Platform的作者,在這篇文章中,作者闡述了CUBA平臺中關於資料校驗的設計思想和使用方式,可以作為大家在設計資料校驗方面一個比較好的參考。] 我接觸到的很多專案中,對資料校驗這方面內容都

easyui select下拉選 資料

//物料號唯一性校驗 $.extend($.fn.validatebox.defaults.rules, { unique:{ validator: function (value, param) { return flag;//直接根據ajax返回值 做訊息提示 },