2013-04-24 56 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>。請讓我知道它是否有效。