0

date_observedフィールドを持つJavabeanがあります。現在、ユーザーが開始日と終了日の間のエントリを検索できるフォームを作成しようとしています。

このBeanを拡張して開始日フィールドと終了日フィールドを持つ別のJavaBeanを作成して、要求パラメーターからこれらのフィールドにデータを入力できるようにする必要がありますか?

SQL文字列を生成するためにDaoにBeanをクリーンに渡し、日付形式が正しくない場合にフォームの検証を行う方法もあります。

通常、私はします

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());
        }
    }
}

start_dateしかし、私のコメントJavabeanにはとのフィールドがありません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を拡張するか、2つの日付フィールドを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 に答える