Struts验证框架不起作用

时间:2013-04-24 19:49:50

标签: struts validation

我有一个日期字段,应该允许模式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时,它正在接受它。

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:0)

  

日期 - 验证字段是否可以转换为日期。此验证器使用java.text.SimpleDateFormat来解析日期,并且可以选择使用datePattern或datePatternStrict变量。如果未指定模式,则假定为默认短日期格式。使用datePatternStrict和datePattern变量之间的区别在于datePatternStrict还检查输入数据的长度与指定的模式长度相同(例如1/1/2004将失败,模式为MM / dd / yyyy)。

取自:Struts Documentation

请改为尝试:

    <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>。如果有效,请告诉我。