在
struts
開發中使用
validator
驗證是應該注意的基本問題
首先,在
struts-config.xml
里面最后面的位置加上
<
message-resources
parameter
=
"com.ln.struts.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
>
其中,
validator-rules.xml
用來定義驗證規則,
validation.xm
l
用來設置需要定義的表單項,以及該項要進行何種驗證,錯誤時返回什么信息。
ApplicationResources
則是要顯示的錯誤信息的資源文件。示例如下:
?
validator-rules.xml
:
<!
DOCTYPE
form-validation
PUBLIC
?????????
"-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.0//EN"
?????????
"http://jakarta.apache.org/commons/dtds/validator_1_0.dtd"
>
<
form-validation
>
??
<
global
>
?????
<
validator
name
=
"required"
???????????
classname
=
"org.apache.struts.validator.FieldChecks"
??????????????
method
=
"validateRequired"
????????
methodParams
=
"java.lang.Object,
?????????????????????? org.apache.commons.validator.ValidatorAction,
?????????????????????? org.apache.commons.validator.Field,
?????????????????????? org.apache.struts.action.ActionErrors,
?????????????????????? javax.servlet.http.HttpServletRequest"
?????????????????
msg
=
"errors.required"
>
msg
是針對
"required"
驗證失敗時,要顯示的錯誤。
???????????
</
validator
>
??
</
global
>
</
form-validation
>
?
validation.xm
l
:
?
<
form-validation
>
?
<
formset
>
???
<
form
name
=
"testForm"
>
?????
<
field
property
=
"name"
???????????
depends
=
"required"
>
???????
<
arg0
key
=
"error.name"
/>
arg0
是針對不同的
property
驗證失敗時要加上的錯誤信息
?????
</
field
>
?????
<
field
property
=
"password"
???????????
depends
=
"required"
>
???????
<
arg0
key
=
"error.password"
/>
?????
</
field
>
???
</
form
>
?
</
formset
>
</
form-validation
>
?
ApplicationResources.properties
:
?
# Resources for parameter 'com.ln.struts.ApplicationResources'
# Project P/struts
errors.header=<font color=red>
errors.footer=</font>
error.name=A userName
error.password=A password
errors.required={0} is required
?
然后在頁面上分別用
?????????????
<
html:errors
property
=
"name"
/>
?????????????
<
html:errors
property
=
"password"
/>
表示出來就行了。(注意:此處的
property
與
validation.xm
l
里面
field
的
property
值要一致)。
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=262778