明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

使用Struts Validator

[摘要]***********翻譯、整理:sjoy (shjunsuper@263.net)出處:Jakarta Struts***********這里只是列出一些使用validator的簡單步驟,并不是一...
***********
翻譯、整理:sjoy (shjunsuper@263.net)
出處:Jakarta Struts
***********

這里只是列出一些使用validator的簡單步驟,并不是一個詳細的例子。如果要進一步的了解該如何使用,請參看相關的文章。


1. 所需的包
commons-validator.jar
jakarta-oro.jar
(這兩者是什么關系我也不太清楚,不知道為什么兩者都需要)

2. 配置驗證規(guī)則(validation rules)
有兩個非常重要的配置文件,validator-rules.xml和validation.xml。

2.1 validator-rules.xml。它包含一些全局驗證的規(guī)則,可以被應用在你應用中的每個地方。它也可以被其它的Struts應用所引用。需要注意的是,如果你需要對它進行擴展,那最好是另外寫一個配置文件,而不是在這個文件中進行擴展,這樣做的目的是保證該文件可以始終被所有的應用所使用,而不是customized。

文件中每個validator元素就是一個單獨的驗證規(guī)則。舉例看看:


--------------------------------------------------------------------------------1
2<validator name="minlength"
3classname="org.apache.struts.validator.FieldChecks"
4 method="validateMinLength"
5 methodParams="java.lang.Object,
6 org.apache.commons.validator.ValidatorAction,
7 org.apache.commons.validator.Field,
8 org.apache.struts.action.ActionErrors,
9 javax.servlet.http.HttpServletRequest"
10depends="required"
11msg="errors.minlength">
12</validator>
--------------------------------------------------------------------------------

其它不多說,其中有一個depends的屬性,它代表在作這個驗證(minlength)之前,先要作那個的驗證(required)。如果這樣寫:depends="rule1,rule2",那么就需要先驗證rule1和rule2,然后再來驗證minlength了。需要注意的是,如果前面的驗證沒有通過(失敗)的話,那么后面的驗證就不會進行。
另外,validator中可以有javascript的子元素,這個稍后再解釋。
當驗證失敗,一個ActionError對象就會被創(chuàng)建出來,并被添加到ActionErrors中,然后在view component上就可以對它進行處理了。

2.2 validation.xml。該配置文件是應用相關的(application specific)。它定義了一個具體表單中所要使用的從validator-rules.xml中來的驗證規(guī)則。

3. 通過plugin把驗證模塊和Struts結合起來。

--------------------------------------------------------------------------------1
2<plug-in className="org.apache.struts.validator.ValidatorPlugIn">
3<set-property property="pathnames"
4 value="/WEB-INF/conf/validator-rules.xml,
5/WEB-INF/conf/validation.xml"/>
6</plug-in>
--------------------------------------------------------------------------------


4. 有兩個地方可以對表單進行驗證,一個是放在Form-Bean中驗證,一個就是放在Action-Form中來驗證。此外對于form,還分標準的form和動態(tài)form兩種,這樣又引入了是標準Form驗證還是動態(tài)Form驗證。

5. 創(chuàng)建自己的驗證規(guī)則的三個步驟。
5.1 編寫包含有相應驗證方法的java類;
5.2 編輯validator-rules.xml文件或者創(chuàng)建自己的版本;如果是自己創(chuàng)建的配置文件,不要忘記把它添加到plugin的設置中去。
5.3 在validation.xml中使用新的驗證規(guī)則來驗證表單。

6. 接下來就是如何使用javascript啦!
這里大概說一下如何使用,并沒有一個具體完整的例子 :(
6.1 用于javascript的tag是JavascriptValidator。javascript代碼將被包含在validator元素內,以javascript為元素。
6.2 當JavascriptValidator這個tag被包含在jsp頁面中的時候,包含在javascript元素中的js代碼將被寫到客戶端的jsp頁面中以供驗證使用。
6.3 這樣來使用javascript的tag:
<html:javascript formName="loginForm" />
其中formName是用來查找相應的javascript代碼的。
6.4 必須再為該form寫一個onsubmit的事件:
<html:form action="getPayment Info" onsubmit="return validateLogin Form(this);" >
這里的validateLoginForm方法是由tag來自動創(chuàng)建的,它包含了所有要檢驗的js邏輯。