0

我有一个带有 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_dateend_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 中没有日期,你如何将表单验证传回表单?

4

1 回答 1

1

在您的 DAO 类中,您有一个以开始和结束日期作为参数的 serch 方法,这是一个很好的做法。

public List<Evaluatee> search(String startDate, String endDate) {
///CODE GOES HERE
}

DAO 不需要有一个 Comment 对象作为参数,规则是数据库的每个表都需要是一个具有与表中相同字段的类。

于 2012-11-15T17:06:59.200 回答