2011-04-13 43 views
0

我處於不幸的境地,我需要在使用遺留數據的Grails應用程序中使用複合標識。這意味着我必須重寫控制器中的一些操作,但是正如我所做的那樣,我感到震驚的是,我無法直接使用日期參數作爲動態方法的參數。爲什麼我需要在Grails中解析日期?

而不是僅僅做MyLegacyObj.findBySystemIdAndLogDate(params.systemId, params.logDate),我首先需要解析日期字符串,然後將其提供給動態方法。爲了進一步複雜化,我不知道日期字符串有什麼格式(直到我在輸出中添加了大量log.debug()字符串)。所以現在我有一些代碼看起來像這樣

def formatter = new SimpleDateFormat("EEE MMM d HH:mm:ss z yyyy") 
MyLegacyObj.findBySystemIdAndLogDate(params.systemId, formatter.parse(params.logDate)); 

這種感覺unoptimal,沒有說危險(如果用的語言環境的日期格式更改?)?什麼是這樣做的推薦方式,我真的需要解析日期嗎?

回答

1

Date是一個相當複雜的對象,params只是String s,所以Date是部分提交的。在分配x.properties = params時,它是從部件「神奇」組裝的。

Command object會爲你做的工作,如果你添加一個Date字段。

它與方法的動態或靜態調用無關。編輯Date的GSP也可能會受到干擾。

相關問題