在我的应用程序中,我有一个文本字段,它映射到动作类中的日期。如果我输入2011年12月15日(MM / dd / yyyy),它将自动将其转换为03/12/2012(MM / dd / yyyy)。

我的代码是:

jsp页面:

<s:textfield name="drDt" id="drDt" />


动作类:

private Date drDt;
public Date getDrDt() {
    return drDt;
}

public void setDrDt(Date drDt) {
    this.drDt = drDt;
}


问题在于代码:

SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy");

sdf.parse(dateValue);


上面的陈述有一些问题。

最佳答案

这是“默认”行为。否则,将dateFormat.setLenient()设置为false。设置为false时,遇到无效日期(例如您的示例中的日期)时,将抛出Exception。您需要妥善处理。也许,向用户显示一条消息,提示输入的日期不正确或无效。精确地,添加验证器以验证用户输入。

09-26 23:01