bindData除了使用已弃用的服务之外,有没有办法在服务中使用BindDynamicMethod?我不能只使用
TestObject testObject = new TestObject()
TestObject testObject.properties = params
Run Code Online (Sandbox Code Playgroud)
要么
TestObject testObject = new TestObject(params)
Run Code Online (Sandbox Code Playgroud)
因为我有一个自定义绑定方法,利用@BindUsing我TestObject班级中的注释.
dma*_*tro 14
如果您使用的是Grails 3.*那么服务类可以实现DataBinder特征和实现bindData(),如下所示:
import grails.web.databinding.DataBinder
class SampleService implements DataBinder {
def serviceMethod(params) {
Test test = new Test()
bindData(test, params)
test
}
class Test {
String name
Integer age
}
}
Run Code Online (Sandbox Code Playgroud)
这就是我在grails控制台中快速尝试的方法:
grailsApplication.mainContext.getBean('sampleService').serviceMethod(name: 'abc', age: 10)
Run Code Online (Sandbox Code Playgroud)
在 Grails 2.4.4 中你可以这样做:
// grails-app/services/demo/HelperService.groovy
package demo
import org.grails.databinding.SimpleMapDataBindingSource
class HelperService {
def grailsWebDataBinder
TestObject getNewTestObject(Map args) {
def obj = new TestObject()
grailsWebDataBinder.bind obj, args as SimpleMapDataBindingSource
obj
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2558 次 |
| 最近记录: |