2010-01-20 36 views
2

我知道的Grails具有域對象的基於地圖的構造函數,對此你可以通過一個URL的PARAMS到,它會用內省,像這樣的應用相應的字段設置到對象...Grails是否具有從URL查詢字符串複製域屬性的整潔方式?

myDomainInstance = new MyObject(params) 

我想知道是否有服用PARAMS並將其應用到現有的對象,並以同樣的方式更新值,地圖構造函數必須的工作,像等效的方法...

myDomainInstance = params 

myDomainInstance = fromParams(params) 

我只是一廂情願的想或存在這樣的事情嗎?我可以自己編寫代碼,但如果它已經存在,寧可不要。

感謝

回答

7

grails user guide改編:

obj = MyObject.get(1) 
obj.properties = params 

檢查出下更多信息,控制器部分的 'PARAMS' 的文檔。

+0

我剛來這裏發佈完全的!感謝+1。但是,作爲JSON數組傳遞的集合有問題。我想我必須分開解析這些。 – Simon

2

這實際上取決於你正在嘗試做什麼,但一個等效的方法使用數據綁定。

def sc = new SaveCommand() 
bindData(sc, params) 

這給你使用自定義綁定的好處。如果說你的日期格式不是默認的,你可以通過這樣的bean來重新定義它:

public class CustomPropertyEditorRegistrar implements PropertyEditorRegistrar { 
    public void registerCustomEditors(PropertyEditorRegistry registry) { 
     registry.registerCustomEditor(Date.class, new CustomDateEditor(new SimpleDateFormat("dd/MM/yyyy"), true)); 
    } 
} 
+0

完全有效的方法,非常類似於擴展數據綁定所需的方法http://www.grails.org/Extended+Data+Binding+Plugin –

相關問題