2016-10-02 83 views
0

以下是grails中控制器單元測試類的setUp方法中的一段代碼。我想了解以下設置代碼的用途。該應用程序有一個TimeService,負責執行時間操作。我感謝任何幫助!瞭解遺留的grails代碼?

def customPropertyEditor = new CustomPropertyEditorRegistrar(timeService: new TimeService()) 

def map = (Map<String, PropertyEditorRegistrar>) servletContext.getAttribute(GrailsDataBinder.PROPERTY_EDITOR_REGISTRARS) 
     if (!map) servletContext.setAttribute(GrailsDataBinder.PROPERTY_EDITOR_REGISTRARS, [customPropertyEditor: customPropertyEditor]) 
     else map.put('customPropertyEditor', customPropertyEditor) 

回答

0

好吧,我發現這段代碼負責使它與日期綁定。顯然,在grails中沒有一個乾淨的方法來綁定日期2.2。

1

創建這個TimeService對象,它是customPropertyEditor

def customPropertyEditor = new CustomPropertyEditorRegistrar(timeService: new TimeService()) 

製作地圖出servletContext.getAttribute(GrailsDataBinder.PROPERTY_EDITOR_REGISTRARS

def map = (Map<String, PropertyEditorRegistrar>) servletContext.getAttribute(GrailsDataBinder.PROPERTY_EDITOR_REGISTRARS) 

if (!map) =如果沒有地圖找到=爲空,由於沒有結果

然後將servletContext.setAttribute(GrailsDataBinder.PROPERTY_EDITOR_REGISTRARS設置爲ob JECT頂部customPropertyEditor

servletContext.setAttribute(GrailsDataBinder.PROPERTY_EDITOR_REGISTRARS, [customPropertyEditor: customPropertyEditor]) 

如果有一個地圖放在地圖customPropertyEditor這個值

else map.put('customPropertyEditor', customPropertyEditor) 

至於什麼GrailsDataBinder正在做的ServletAttribute有它的代碼庫搜索看看還有什麼其他的東西在互動