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>
驗證失敗效果圖

驗證成功效果圖