我想将请求参数绑定到域对象,以便我可以在几个控制器和操作中添加域对象的更新。
在这一点上工作:
def addEditBeerCommand = new AddEditBeerCommand()
Map carParams = params.findAll {
(
AddEditBeerCommand.metaClass.hasProperty(addEditBeerCommand, it.key)
&&
!( it.key in ["tastingDate", "price"])
)
}
addEditBeerCommand = new AddEditBeerCommand(carParams)
但是我必须处理 tastingDate (字符串到日期的转换)和价格(字符串到双倍),有没有办法我可以利用grails数据绑定?
答案 0 :(得分:1)
documentation非常完整,详细介绍了Grails中可用于数据绑定的所有选项。有很多选项可用于自定义绑定,文档的这一部分(以及所有其余部分)值得一读。我相信你会找到你所需要的。
根据您的意见,使用bindObjectToInstance
显示您正在寻找的内容。
答案 1 :(得分:1)
import static org.codehaus.groovy.grails.web.binding.DataBindingUtils.bindObjectToInstance
...
def filters = {
namedFilter(controller:"myController", action: "myAction") {
// request params are available as params property of the filter class
def cmd = new SomeCommandObject()
bindObjectToInstance(cmd, params)
}
}