2012-11-15 65 views
0

我有一個帶有date_observed字段的Javabean。現在我試圖創建一個表單,用戶可以在開始日期和結束日期之間搜索條目。帶有單個日期字段的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中的日期,那麼如何將表單驗證通過形式傳遞給表單?

回答

1

在您的DAO類中,您有一個以開始日期和結束日期爲參數的serch方法。

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

這是沒有必要的是,DAO的需要有一個註釋對象作爲參數,該規則是,對數據的基礎上的每個表需要與相同的字段,如表的類。