是不是日期转换器的原因?两边格式没对等起来?
如果没有指定日期转换器,框架将使用Date.SHORT格式来做日期转换,使用程序中指定的locale或系统默认的locale
如:
<field name="user.birthday">
  <field-validator type="date">
    <param name="max">01/01/1990</param>
    <param name="max">01/01/2090</param>
    <message>xxxx</message>
  </field-validator>
</field>为什么不试试非字段验证器?
    <field name="user.birthday"> 
 
        <field-validator type="fieldexpression"> 
 
            <param name="expression">xxx</param> 
 
            <message>必须是能承担法律责任的年龄(未满16岁) </message> 
 
        </field-validator> 
 
    </field> 
xxx是基于ognl的表达式

解决方案 »

  1.   

    上面不小心写错了
    <field name="user.birthday">
      <field-validator type="date">
        <param name="min">01/01/1990 </param>
        <param name="max">01/01/2090 </param>
        <message>必须是能承担法律责任的年龄(未满16岁) </message>
      </field-validator>
    </field> 
      

  2.   

    我用静态值已经通过验证了:
    <field name="user.birthday">
      <field-validator type="date">
        <param name="min">1990-01-01</param>
        <param name="max">2009-01-01</param>
        <message>必须是能承担法律责任的年龄(未满16岁) </message>
      </field-validator>
    </field>  上面的配置能进行验证,说明日期格式是对的。现在就取动态值不行:
    <field name="user.birthday">
      <field-validator type="date">
        <param name="min">1990-01-01</param>
        <param name="max">${sixteenYears}</param>
        <message>必须是能承担法律责任的年龄(未满16岁) </message>
      </field-validator>
    </field>在Action类中做了setSixteenYears()和getSixteenYears(),getSixteenYears()返回日期型不行,返回(yyyy-MM-dd)格式的String型也不行。