在我的应用程序中,我有一个文本字段,它映射到动作类中的日期。如果我输入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
。您需要妥善处理。也许,向用户显示一条消息,提示输入的日期不正确或无效。精确地,添加验证器以验证用户输入。