2016-10-02 82 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有它的代码库搜索看看还有什么其他的东西在互动