我有一个日期字段,应该允许模式MM / dd / yyyy的日期。
在我的Struts validation.xml文件中,我有以下代码
<field property="newEffectiveDate"
depends="required,date">
<msg name="required"
key="errors.effectiveDate.required" />
<msg name="date" key="errors.date.format" />
<arg0 key="property.effectiveDate" />
<var>
<var-name>datePattern</var-name>
<var-value>MM/dd/yyyy</var-value>
</var>
</field>
即使我输入了正确的格式为2013年4月24日,它也会抛出一条错误消息,说明日期格式错误,但当我输入日期为04-24-2013时,它正在接受它。
非常感谢任何帮助。
答案 0 :(得分:0)
日期 - 验证字段是否可以转换为日期。此验证器使用java.text.SimpleDateFormat来解析日期,并且可以选择使用datePattern或datePatternStrict变量。如果未指定模式,则假定为默认短日期格式。使用datePatternStrict和datePattern变量之间的区别在于datePatternStrict还检查输入数据的长度与指定的模式长度相同(例如1/1/2004将失败,模式为MM / dd / yyyy)。
请改为尝试:
<var><var-value>MM/dd/yyyy</var-value></var>
这似乎是一个非常常见的问题,接近0个答案。
答案 1 :(得分:0)
<field property="pwd" depends="required,date">
<arg position="0" key="pswd"/>
<arg position="1" resource="false" key="5"/>
<arg position="0" key="dt"/>
<var>
<var-name>date</var-name>
<var-value>MM/dd/yyyy</var-value>
</var>
</field>
上述代码运行正常,因此您可能希望使用<var-name>datePattern</var-name>
更改<var-name>date</var-name>
。如果有效,请告诉我。