2011-02-11 60 views
0

我有一個Grails應用程序的問題。避免grails格式化

在某些occassions,檢索與MyObject.get(ID)的實例時,我得到這個異常:

Expected: class java.lang.Integer, got class java.lang.String

所以我這樣做:

Integer i = Integer.valueOf(params.id); 

MyObject.get(i); 

然而,一個出現新問題。 Integer#valueOf(String)似乎會返回格式化的值,因此如果params.id大於1000,則i會得到小數點(例如,1253 - >1.253)。

更新

一些調查研究後,我發現的params.id值與小數點快到了,即使它沒有出現在查詢字符串:

http://somesite.com//action?other=33&id=1485

params.id = 1.485

這個小數點到底怎麼了? 這是否有任何grailsy方法?

在此先感謝

回答

0

使用的Integer.parseInt而不是Integer.valueOf

1

我經常使用groovy語法來做到這一點:

def i = (params.id as int) 
0

我注意到,如果我用這個:

$ {fieldValue方法(豆:爲myBean,場: 'aLongField')}

在GSP頁面,它會被格式化,像顯示「 1.485「或」1,485「,具體取決於當前的語言環境。

如果我使用:

$ {} myBean.aLongField

甚至

$ {myBean.aLongField.toString()}

不調用NumberFormat並顯示原始值。