关于Struts2的日期值min和max验证问题

zhangjihao 2008-11-04
我的项目有一个技术需求,就是注册用户必须是成年人,因此生日的验证参数max应该是今日减16年以前的日期方可注册,这意味着max的值是动态的,我通过OGNL给一个${sixteenYears}
<!-- 验证字符串为日期类型 --> 
  
     <field name="user.birthday"> 
  
         <field-validator type="date"> 
  
             <param name="max">${sixteenYears}</param> 
  
             <message>必须是能承担法律责任的年龄(未满16岁)</message> 
  
         </field-validator> 
  
     </field>
然后我在对应的Action中做了setSixteenYears()和getSixteenYears(),并确定get出来的值是16年前的日期,我将get方法返回值分别做了日期型和字符型来测试,均没有成功。不知为什么,是不是不能用这种方式为max参数赋值?大家是怎么解决的?Struts2项目中xml里如何接受动态赋值?请大家帮忙!
kyo100900 2008-11-05


<validators>
    
	<validator type="expression">
		<param name="expression"><![CDATA[date1.after(date2)]]></param>
		<message>必须是能承担法律责任的年龄(未满16岁)</message>
	</validator>
    
</vaidators>




date1, date2 为action中某两个日期属性, 在表单提交的时候,肯定事先可以弄好。
错误信息用:

<ww:actionmessage/>


显示。
Global site tag (gtag.js) - Google Analytics