关于struts validator的问题-客户端没有验证。多谢!
在使用validator框架时,当只有一个输入框需要验证日期的有效性时,客户端不验证就提交了,但是服务器端是可以验证的,请指教这是为什么?如何解决?在高版本的validator-rules中,没有看到javascript代码,是不是框架就不能进行客户端的验证了?以下是validation.xml中的内容,只有required在客户端得到了验证,其他的在客户端没有验证;
<form-validation>
<formset>
<form name="checkoutForm">
<field property="firstName" depends="required,">
<arg0 key="label.firstName"/>
</field>
<field property="phone" depends="required,">
<arg0 key="label.phone" />
</field>
<field property="birthDate" depends="required,date">
<arg0 key="label.birthDate"/>
</field>
<field property="age" depends="required,integer">
<arg0 key="label.age"/>
</field>
<field property="email" depends="required,email">
<arg0 key="label.email"/>
</field>
</form>
</formset>
</form-validation>
非常感谢!
问题点数:80、回复次数:8Top
1 楼KFeng_bird()回复于 2005-06-03 18:11:43 得分 20
你看这个
<field property="integer" depends="required,integer,intRange">
<arg key="typeForm.integer.displayname" />
<arg name="intRange" key="${var:min}" resource="false" position="1" />
<arg name="intRange" key="${var:max}" resource="false" position="2" />
<var>
<var-name>min</var-name>
<var-value>10</var-value>
</var>
<var>
<var-name>max</var-name>
<var-value>20</var-value>
</var>
</field>
Top
2 楼cailongli()回复于 2005-06-06 08:37:29 得分 0
还是一样的,客户端没有对integer和intRange验证,服务器端验证了。当只有一个字段要有integer的要求时,在javascript中存在错误,所以没有验证就提交了。Top
3 楼cailongli()回复于 2005-06-08 18:03:22 得分 0
怎么再没有人回答我了?Top
4 楼usherlight(xingtian)回复于 2005-06-08 18:54:31 得分 10
<field property="firstName" depends="integer">
<arg0 key="label.firstName"/>
<arg1 key="label.mustBeInteger"/>
</field>
Top
5 楼cailongli()回复于 2005-06-09 16:01:14 得分 0
把date的验证去掉后,客户端的验证就正常了。但是为什么有了date的验证时,就不正常了呢?Top
6 楼usherlight(xingtian)回复于 2005-06-10 12:16:13 得分 50
<field property="birthDate"
depends="date">
<arg0 key="userRegistration.birthDate" />
<var>
<var-name>datePattern</var-name>
<var-value>MM-dd-yyyy</var-value>
</var>
</field>Top
7 楼cailongli()回复于 2005-06-10 14:47:38 得分 0
<field property="birthDate" depends="required,date">
<arg0 key="label.birthDate"/>
<var >
<var-name >datePatternStrict</var-name >
<var-value >yyyy-MM-dd</var-value >
</var >
</field>
只有这样才可以了,不知道为什么不能用datePattern。用datePatternStrict必须把0写上才可以。
http://struts.apache.org/userGuide/dev_validator.html说:
date - validates that a field can be converted to a Date. This validator uses java.text.SimpleDateFormat to parse the date and optionally either a datePattern or datePatternStrict variable can be used. If no pattern is specified the default short date format is assumed. The difference between using the datePatternStrict and datePattern variables is that datePatternStrict checks additionally that the input data is the same length as the pattern specified (so for example 1/1/2004 would fail with a pattern of MM/dd/yyyy).
<field property="saledate" depends="required,date">
<arg0 key="myForm.saledate"/>
<var><var-name>datePattern</var-name><var-value>MM/dd/yyyy</var-value></var>
</field>
<field property="saledate" depends="required,date">
<arg0 key="sale.orderdate"/>
<var><var-name>datePatternStrict</var-name><var-value>MM/dd/yyyy</var-value></var>
</field>
是不是我的validator的版本的问题呢? 我试了jakarta-struts-1.2.4-lib里的commons-validator.jar,结果也是一样的。Top
8 楼cailongli()回复于 2005-06-14 08:40:42 得分 0
没有人再回答我了?Top




