我有一个带有 date_observed 字段的 Javabean。现在我正在尝试创建一个表单,用户可以在其中搜索开始日期和结束日期之间的条目。
我是否应该创建另一个 Javabean 来扩展此 bean 以具有开始和结束日期字段,以便我可以从请求参数填充这些字段?
我想干净地将 bean 传递给我的 Dao 以生成 SQL 字符串,并且如果他们输入不正确的日期格式,也有办法进行表单验证。
通常我会做
public void processDate_observed(HttpServletRequest request, Comment comment) {
String _date = FormUtil.getFieldValue(request, FIELD_DATE_OBSERVED);
if (!"".equals(_date) && _date != null) {
try {
Date date = DateUtil.parse(_date);
com.setDate_observed(date);
} catch (ParseException e) {
setError(FIELD_DATE_OBSERVED, e.getMessage());
}
}
}
但我的评论 Javabean 没有字段start_date
和end_date
而对于dao.search(comment)
public List<Evaluatee> search(Comment comment) {
SQL = ".... where date_observed > ? AND date_observed <= ?
ps.setDate(1, comment.EXTENDED FIELD???)
ps.setDate(2, comment.EXTENDED FIELD???)
...
}
这里的最佳做法是什么?创建一个全新的 Javabean,扩展我原来的 bean 还是将两个日期字段传递给 Dao?但是,如果我在 bean 中没有日期,你如何将表单验证传回表单?