「JAVA」Struts2 輸入校驗

struts2的表單輸入校驗有多種方法

  1. 重寫 ActionSupport 類的 validate() 方法。

    將需要驗證的邏輯寫在該方法中,那麼當執行該Action的時候會先執行該方法再執行execute()方法。但這個方法有一個缺陷,就是一個表單隻能對應一個Action.

  2. 重寫 validateXxx 方法。

比如在 LoginAction 類中,我們想有驗證login表單和regist表單的兩個驗證方法,則分別定義validateLogin()和 validateRegist()方法,然後在配置 struts.xml 時指定 action=login 時執行 login() 方法,action=regist 時執行 regist() 方法,這樣就會先執行 validateLogin 或者 validateRegist, 校驗成功時再執行login()和regist()。這個方法的邏輯比較清晰,相對第一個方法要好。

Advertisements

  1. 使用 Struts2 驗證框架,利用 ***-validation.xml 配置文件

    比如執行 login 表單邏輯的 LoginAction.java 中定義了正常的 getter 和 setter 方法,就是一個正常的Action類。那麼驗證 login 表單就可以用 LoginAction-validation.xml 來驗證,而且兩個文件要放在同一個目錄中。這個xml文件配置舉例如下:

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.2//EN" "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd"><validators> <field name="username"> <field-validator type="requiredstring"> <param name="trim">true</param> <message key="username.required"></message> </field-validator> </field> <field name="psd"> <field-validator type="requiredstring"> <param name="trim">true</param> <message key="psd.required"></message> </field-validator> </field></validators>上面的代碼是分別對用戶名和密碼欄位進行驗證。先說一下<field-validator>標籤,type屬性確定了校驗器的名稱。struts2中有很多可用的校驗器。如:(1)必填校驗器 required(2)必填字元串校驗器 requiredstring(3)整數校驗器 int(4)日期校驗器 date(5)欄位表達式校驗器 fieldexpression(6)郵件地址校驗器 email(7)網址校驗器 url(8)字元串長度校驗器 stringlength(9)正則表達式校驗器 regex用的時候可以具體查一下有哪些param.再說一下 <message>標籤,這是當驗證不通過時返回給前端的提示信息,可以寫在<message></message>標籤中間,但為了實現國際化,最好是使用上面 key 的方式。至於這個 key 在哪裡呢,我們可以定義一個 errormsg.properties 文件放在 src 目錄下,裡面都是key-value對,一般都是key 用英文,value用中文,實驗國際化。並不是這樣就完事兒了的,還要把這個properties文件部署到struts.xml才可以。具體部署如下:1 <struts>2 <!-- 下面這行是為了實現國際化 -->3 <constant name="struts.custom.i18n.resources" value="errormsg"></constant>5 <package name="default" extends="struts-default">

歡迎加入學習交流群569772982,大家一起學習交流。

Advertisements

Advertisements

你可能會喜歡