gpt4 book ai didi

java - Struts 1 ActionForm 中的处理日期

转载 作者:行者123 更新时间:2023-12-01 15:40:32 29 4
gpt4 key购买 nike

我在处理 java.util.Date 的输入请求参数(当然是 String 类型)时遇到问题。我认为添加到我的 bean 中的以下代码可能会解决这个问题,但我错了:

public Date getDate() {
return date;
}

public void setDate(Date date) {
this.date = date;
}

public void setDate(String dateString) {
try {
date = DateFormat.getDateInstance().parse(dateString);
} catch (ParseException e) {
date = new Date();
}
}

提交表单后抛出异常:

javax.servlet.ServletException: BeanUtils.populate
org.apache.struts.util.RequestUtils.populate(RequestUtils.java:469)
org.apache.struts.action.RequestProcessor.processPopulate(RequestProcessor.java:818)

java.lang.IllegalArgumentException: Cannot invoke com.epam.testapp.model.News.setDate - argument type mismatch
org.apache.commons.beanutils.PropertyUtilsBean.invokeMethod(PropertyUtilsBean.java:1778)
org.apache.commons.beanutils.PropertyUtilsBean.setSimpleProperty(PropertyUtilsBean.java:1759)
org.apache.commons.beanutils.PropertyUtilsBean.setNestedProperty(PropertyUtilsBean.java:1648)
org.apache.commons.beanutils.PropertyUtilsBean.setProperty(PropertyUtilsBean.java:1677)

这是 struts 1 形式的基础,因为返回 getter 和接受 setter 参数类型不匹配,该代码将无法工作吗?我怎么解决这个问题 ?我根本不想创建类似 setStringDate(String stringDate(){...} 的方法并在每个页面上思考我应该调用哪个方法:(

最佳答案

日期对象不能是 struts 中的属性,因为日期格式可能会有所不同(取决于规范)。有些可能有 dd-MM-yyyydd-MMMM-yy 等。

我建议拥有特性:

private String date;

public String getDate() { return date; }

public void setDate(String date) { this.date = date; }

并在您的操作中,将日期字符串转换为 Date 对象。

关于java - Struts 1 ActionForm 中的处理日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8118279/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com