用struts2验证日期是出错,
我的代码是
index.jsp<%@ page contentType="text/html; charset=UTF-8" %>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>longin</title>
</head>
<body>
<h3>用户注册</h3>
<s:form action="LoginAction" validate="true">
<s:textfield name="username"  label ="username:" />
<s:textfield name="psd" label="psd: "/>
<s:textfield name="age" label="age: "/>
<s:textfield name="date" label="date: "/>
<s:submit />
</s:form>
</body>
</html>LoginAction.javapackage tutorial;import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;import com.opensymphony.xwork2.ActionSupport;public class LoginAction extends ActionSupport {
private String username;   
    private String psd; 
    private int age; 
    private Date date;
    
    public String getusername() {   
       
        return username;   
  
    }   
  
    public void setusername(String username) {   
  
        this.username = username;   
  
    }   
    public String getpsd() {   
     
        return psd;   
  
    }   
  
    public void setpsd(String psd) {   
  
        this.psd = psd;   
  
    }   
    
    public int getage() {   
       
        return age;   
  
    }   
  
    public void setage(int age) {   
  
        this.age = age;   
  
    } 
    public Date getdate() {   
     System.out.println("..................getdate="+date);
        return date;   
  
    }   
  
    public void setdate(Date date) {   
      System.out.println(".................setdate="+date);
        this.date = date;   
  
    } 
    public String execute() throws Exception {   
     System.out.println("servlet..............");
            
 
       return SUCCESS; 
    } 
    
}
LoginAction.java<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE validators PUBLIC 
   "-//OpenSymphony Group//XWork Validator 1.0.2//EN" 
   "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd"><validators>
    <field name="username">
        <field-validator type="requiredstring">
            <message>name is required</message>
        </field-validator>
         <field-validator type="stringlength">  
            <param name="minLength">3</param>  
            <param name="maxLength">10</param>  
            <message>userName should be between 3 and 10</message>  
        </field-validator> 
    </field>
    
    <field name="psd">  
        <field-validator type="requiredstring">  
            <param name="trim">true</param>  
            <message>password is required</message>  
        </field-validator>  
        <field-validator type="stringlength">  
            <param name="minLength">5</param>  
            <param name="maxLength">16</param>  
            <message>password should be between 5 and 16</message>  
        </field-validator>  
    </field>  
    
   <field name="age">  
        <field-validator type="required">  
            <message>age is required</message>  
        </field-validator>  
        
        <field-validator type="int">  
            <param name="min">20</param>  
            <param name="max">100</param>  
            <message>age should be between 20 and 100</message>  
        </field-validator> 
    </field> 
    
</validators>
递交页面的时候,地址栏跳转到http://localhost:8080/validtest2/LoginAction.action,但是tomcat中不报错。
ie中显示验证错误信息的地方,显示Invalid field value for field "date".
如果把loginAction.java中改为private String date则可以提交成功,但是loginAction-validation.xml中date的验证就做不了。
这里loginAction-validation.xml我没有加下面这个date型的验证,好像加不加结果都一样, <field name="date"> 
<field-validator type="required">  
            <message>date is required</message>  
        </field-validator>
      <field-validator type="date">
          <param name="min">2008-8-1</param>
          <param name="max">2008-8-19</param>
          <message>The date must be between 2008-8-1 and 2008-8-19.</message>
      </field-validator>
    </field>这是什么问题?怎样解决?

解决方案 »

  1.   

     <param name="min">2008-8-1</param>
     <param name="max">2008-8-19</param>
      

  2.   

    我没记错的话这是类型转换的问题,你在页面输入的格式是正确的吗?在jsp页面中用struts2的标签试一下
      

  3.   

    你报的错误      Invalid field value for field "date"  
    说明在客户端在发起请求后,于类型转换环节中中出错了,建议你查看类型转换的环节。
    表单提交==》类型转换==》赋值给XxxxAction属性==》验证环节==》后面的环节省略了。