2013-04-24 79 views
1

我有一个日期字段,应该需要允许模式MM/dd/yyyy的日期。Struts验证框架不起作用

在我的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日,它抛出一个错误信息说,该日期是错误的格式,但当我输入日期为2013年4月24日它接受它。

任何帮助,非常感谢。

回答

0

date - 验证字段是否可以转换为日期。此验证程序使用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的答案非常普遍的问题。

+0

它不与任何下列 MM/DD/YYYY工作 – Harish 2013-04-25 15:41:12

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>。请让我知道它是否有效。