在form表单使用struts2中<s:datetimepicker/>,老是报"birth"字段无效.,使得表单提交不了,我的LoginAction是从ActionSupport继承的,在LoginAction-validator.xml中校验方式如下
<field name="birth">
   <field-validator type="date">
<param name="min">1900-01-01</param>
<param name="max">2050-02-21</param>
<message>年纪必须在${min}到${max}之间</message>
   </field-validator>
</field>
在login.jsp中标签的写法如下
<s:datetimepicker name="birth" displayFormat="yyyy-MM-dd" label="出生日期"></s:datetimepicker>
不知道为什么校验老是通不过,请大家帮我看一下谢谢!!!
 
  

解决方案 »

  1.   

    <param name="min">1900-01-01 </param> 
    <param name="max">2050-02-21 </param> 
    1900-01-01两边不能有空格;
    看看行不。你把,验证去掉,在action里面把接受到的birth打印出来看看是什么,
    格式对不
      

  2.   

    打印出来是null,为什么这个值是个空值呢?Action如下
    public class LoginAction extends ActionSupport {
    private static final long serialVersionUID = 1L;
    private Date birth;
            private String userName;
    public String getUserName() {
    return userName;
    } public void setUserName(String userName) {
    this.userName = userName;
    } public Date getBirth() {
    return birth;
    } public void setBirth(Date birth) {
    this.birth = birth;
    }
    }
      

  3.   

    struts2是不是不支持把String类型转换成Date类型,还要写一个类型转换器!!
      

  4.   

    <s:datetimepicker name="birthday" label="Birthday"/>控制器中输出
    System.out.println(birthday.toLocaleString());