2012-05-29 19 views
0

我有一個Spring Roo的MVC項目與一個叫工作單模型去。我使用Roo shell爲這個模型生成兩個finder:findWorkOrdersByDateCompletedEquals和findWorkOrdersByDateCompletedBetween。的Spring Roo:取景器將無效的日期格式的URL

問題:當我搜索使用findWorkOrdersByDateCompletedBetween,在URL中minDateCompleted和maxDateCompleted參數格式錯誤(在S-格式)

.../workorders?find=ByDateCompletedBetween&minDateCompleted=2012-05-08&maxDateCompleted=2012-05-31 

這裏是從調試日誌中的錯誤:

Failed to convert from type java.lang.String to type 
@org.springframework.web.bind.annotation.RequestParam 
@org.springframework.format.annotation.DateTimeFormat java.util.Date for value '2012-05-15'; 

有趣的是,findWorkOrdersByDateCompletedEquals工作得很好,併產生這樣的網址:

.../workorders?find=ByDateCompletedEquals&dateCompleted=May+30%2C+2012 

什麼決定了如何生成這些URL?這兩個發現者之間的代碼實際上是相同的,他們爲什麼會生成不同格式的日期?

回答

1

我發現真正的問題,它看起來像它與Spring Roo的一個bug。有一個在控制器的方法.aj文件小豆沒更新:

void addDateTimeFormatPatterns(Model uiModel) { 
    uiModel.addAttribute("workOrder_datecompleted_date_format", DateTimeFormat.patternForStyle("M-", LocaleContextHolder.getLocale())); 
    uiModel.addAttribute("workOrder_maxdatecompleted_date_format", DateTimeFormat.patternForStyle("M-", LocaleContextHolder.getLocale())); 
    uiModel.addAttribute("workOrder_mindatecompleted_date_format", DateTimeFormat.patternForStyle("M-", LocaleContextHolder.getLocale())); 
} 

小豆自動把「workOrder_datecompleted_date_format」屬性,但我曾在法,推動並添加maxdatecompleted和mindatecompleted自己的屬性。

0

我發現像一個骯髒的方式來解決這個問題..:P

只是改變你的領域,你在
有findWorkOrdersByDateCompletedBetween.jspx

到一個的dateTimePatern屬性你必須在
findWorkOrdersByDateCompletedEquals.jspx

在我的情況下,它是像
場:日期時間dateTimePattern = 「$ {tramite_maxfecha_date_format}」[...]

,我把它改成
場:日期時間dateTimePattern =「$ {tramite_fecha_date_format}」

+0

謝謝,這給了我足夠找出錯誤:) – MattL