首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Struts 靜態資料驗證完整配置指南

     編輯:Java 相關知識

概述

Struts 內建的靜態驗證框架(Validator)能在伺服器端自動檢查表單資料的類型、必填、格式等規則,減少手寫驗證程式碼。本文逐步說明從啟用插件到定義規則的完整流程。

1. 啟用 Validator 插件

在 struts-config.xml 中加入:

<message-resources parameter="ApplicationResources" />
<plug-in className="org.apache.struts.validator.ValidatorPlugIn">
  <set-property property="pathnames"
      value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml" />
</plug-in>

parameter="ApplicationResources" 指向類路徑下的 ApplicationResources.properties;為支援中文錯誤訊息,需另備 ApplicationResources_zh_CN.properties,兩者皆打包至 WEB-INF/classes。

2. 匯入驗證規則檔

使用開發工具將 validator-rules.xml(內建驗證規則)與 validation.xml(自訂驗證內容)放入 WEB-INF/ 目錄。

3. 定義欄位顯示名稱與錯誤訊息

在 ApplicationResources.properties 中設定:

errors.integer={0} 必須為整數值,請勿輸入空白字元。
errors.date={0} 日期格式錯誤,應為 2004-03-23 或 2004-03-23 00:00:00.0

# 表單 form1 的欄位顯示名稱
form1.name.displayname=姓名
form1.height.displayname=身高
form1.born.displayname=出生日期

為使中文正確顯示,建議以 native2ascii 轉碼:

native2ascii ApplicationResources.properties ApplicationResources_zh_CN.properties

4. 編寫 validation.xml 驗證規則

在 <formset> 區塊中為每個 ActionForm 定義驗證:

<form name="form1">
  <field property="name" depends="required">
    <msg name="required" key="errors.required"/>
  </field>
  <field property="height" depends="required,integer">
    <msg name="integer" key="errors.integer"/>
  </field>
  <field property="born" depends="required,date">
    <msg name="date" key="errors.date"/>
    <var>
      <var-name>datePattern</var-name>
      <var-value>yyyy-MM-dd</var-value>
    </var>
  </field>
</form>

depends 可串接多個內建規則(required、integer、date、email、mask 等)。

5. ActionForm 需實作 Validateable

表單類別需繼承 ValidatorForm 或實作 Validateable 介面,Struts 會在 validate() 階段自動觸發驗證。

總結

靜態驗證將規則外部化至 XML,達成「設定大於程式碼」的目標,維護性極佳。搭配國際化資源檔,即可支援多語系專案。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved