1. 程式人生 > >三大框架(ssh)——struts深入學習(Validator校驗資料)

三大框架(ssh)——struts深入學習(Validator校驗資料)

使用Validator配置檔案校驗資料

我們在提交表單資料時,通常都需要增加資料的校驗處理。資料校驗分為:客戶端校驗、伺服器端校驗。Struts2給我們提供了豐富的支援!

Struts2提供了很多資料校驗器,常用的有

校驗器

用法

required

驗證被校驗表單域是否為null

requiredstring

驗證被校驗String是否為null或空字串,可選引數trim,可在對字串執行trim操作

stringlength

檢驗字串的長度範圍,可選引數trim、mixLength、maxLength

int/double

檢查輸入是否為數字,並且可判斷數值範圍。可選引數:min、max等

date

檢查date的範圍,可選引數:min、max

email

檢查輸入的是否符合email格式

url

檢查輸入的是否符合url格式

regex

檢查是否能匹配到正則表示式。基本可以符合我們全部的驗證要求!!

使用struts2的資料校驗需要按照如下步驟程式設計:

1.  testFormLabel.jsp頁面中表單程式碼如下:

  <%@ page language="java" import="java.util.*" pageEncoding="gbk"%>

<%@ taglib prefix="s" uri="/struts-tags" %>

<!DOCTYPE HTML PUBLIC

 "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

  <head>

    <title>測試struts2</title>

  </head>

  <body>

   <s:form action="test" name="regFrm" validate="true" >

   <s:textfield label="使用者名稱" name="uname"></s:textfield>

   <s:password label="密碼" name="pwd" ></s:password>

   <s:textfield label="郵箱" name="email"></s:textfield>

   <s:submit  value="註冊" ></s:submit>

   </s:form>

  </body>

</html>

2. Action類需要實現介面:Validateable。通常繼承ActionSupport即可,該類實現了Validateable介面。

package com.bjsxt.struts.test;

 

 

import com.opensymphony.xwork2.ActionSupport;

 

public class TestValidateAction extends ActionSupport/*需要繼承從而支援校驗*/{

 

private String uname;

private String pwd;

private String email;

 

public String execute() throws Exception {

//增加測試程式碼

 

return this.SUCCESS;

}

 

//省略get和set方法!

 

}

3.在Action類所在的包中增加校驗檔案:Action類名[-action別名]-validation.xml。內容如下:

<?xml version="1.0" encoding="UTF-8"  ?>

<!DOCTYPE validators PUBLIC 

          "-//OpenSymphony Group//XWork Validator 1.0//EN" 

          "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">      

<validators>

<field name="uname">

<field-validator type="requiredstring">

<param name="trim">true</param>

<message>使用者名稱不不能為空,請輸入!</message>

</field-validator>

<field-validator type="stringlength">

<param name="trim">true</param>

<param name="minLength">5</param>

<param name="maxLength">10</param>

<message>使用者名稱長度在5-10之間!</message>

</field-validator>

</field>

<field name="pwd">

<field-validator type="requiredstring">

<param name="trim">true</param>

<message>密碼不不能為空,請輸入!</message>

</field-validator>

<field-validator type="stringlength">

<param name="trim">true</param>

<param name="minLength">5</param>

<param name="maxLength">10</param>

<message>密碼長度在5-10之間!</message>

</field-validator>

</field>

<field name="email">

<field-validator type="requiredstring">

<param name="trim">true</param>

<message>郵箱不能為空,請輸入!</message>

</field-validator>

<field-validator type="email">

<param name="trim">true</param>

<message>郵箱格式不合法!</message>

</field-validator>

</field>

 

</validators>

4.struts.xml中action的相關配置中,增加input頁面:

<action name="testValidate" class="com.bjsxt.struts.test.TestValidateAction">

          <result name="success">/ok.jsp</result>

          <result name="input">/testFormLabel.jsp</result>

        </action>

5.一般需要增加客戶端驗證,<s:form>中增加屬性validate=true即可。

6.測試,訪問testFormLabel.jsp頁面。