天天看點

Struts2——架構校驗(基于XML配置方式)

1、定義Action 繼承ActionSupport或者實作Validateable接口:

2、配置驗證出錯轉向的頁面(配置name為input的result)

3、配置驗證的xml檔案

ActionClassName-validation.xml(同個包)
其中ActionClassName為 action的簡單類名,-validation為固定寫法。
           

4、添加驗證規則

<validators>: 根元素

<field>:指定action中要校驗的屬性,name屬性指定将被驗證表單字段的名字

<field-validator>:指定校驗器, type 指定驗證規則。

<param>:子元素可向驗證程式傳遞參數

<message>:校驗失敗後的提示資訊,可為message指定key的編碼類型(utf-8)
           

5、一些常用的驗證屬性

  • required: 確定某給定字段值不是空值 null
  • requiredstring: 確定某給定字段的值既不是空值 null, 也不是空白.
    trim (參數): 預設為true, 表示驗證該字段值前先剔除前後空格. 
               
  • stringlength: 驗證一個非空字段值是否滿足長度要求.
    minLength:相關字段的最小長度. 若未給出沒有最小長度限制
    
        maxLength:相關字段的最大長度. 若未給出沒有最大長度限制
    
        trim: 在驗證之前是否去除前後空格
               
  • int: 檢查給定字段的值是否可以被轉換為一個整數
    min: 相關字段的最小值. 若沒給出這個參數, 該字段将沒有最小值限制
    
        max: 相關字段的最大值. 若沒給出這個參數, 該字段将沒有最大值限制
               
  • date: 確定某給定日期值在一個給定範圍内
    max:相關字段的最大值. 若沒給出該參數, 該字段無最大值限制
    
        min:相關字段的最小值. 若沒給出該參數, 該字段無最小值限制
               
//使用SimpleDateForamat類, 改輸出日期格式
Date date = new Date();
SimpleDateForamat strdate = new SimpleDateFormat("YYYY-MM-dd");
//使輸出的格式為YYYY-MM-dd
System.out.println(strdate.format(date));   
// 輸出為你需要的格式 2020-4-14
           
  • email: 檢查給定 String 值是否是一個合法的 email
  • url: 檢查給定 String 值是否是一個合法的 url
  • regex: 檢查某給定字段的值是否與一個給定的正規表達式模式相比對.
    expression: 用來比對的正規表達式
    
        caseSensitive: 是否區分字母的大小寫. 預設為 true
    
        trim: 是否去除前後空格. 預設為 true
               

6、特别注意配置JSP頁面

<%@taglib uri="/struts-tags" prefix="s" %>
//标簽引用頭檔案

<s:fielderror></s:fielderror>
//顯示xml配置<message>的資訊
           

7、一個小栗子

Loginaction.java

//注意繼承ActionSupport
public class Loginaction extends ActionSupport implements ModelDriven{

    User user = new User();

    @Override
    public String execute() throws Exception {
        return SUCCESS;
    }
    @Override
    public Object getModel() {
        // TODO 自動生成的方法存根
        return user;
    }
}
           

struts.xml

<action name="Loginaction" class="com.dao.Loginaction">
        <result>/success.jsp</result>
        <result name="input">/login.jsp</result>
        //input設定驗證失敗頁面
    </action>
           

Loginaction-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="name">
        <field-validator type="requiredstring">
            <param name="trim">true</param>
            <message>使用者名必填</message>
        </field-validator>
    </field>
    <field name="email">
        <field-validator type="email">
            <message>email格式不正确</message>
        </field-validator>
    </field>
</validators>
           

驗證失敗效果圖

Struts2——架構校驗(基于XML配置方式)
Struts2——架構校驗(基于XML配置方式)

驗證成功效果圖

Struts2——架構校驗(基于XML配置方式)
Struts2——架構校驗(基于XML配置方式)

繼續閱讀