使用grails 2.3.7。我正在尝试使用Grails控制器动作参数绑定。如果我有这个代码:
class TestController {
def test(MyClass1 myClass1) {
log.debug(myClass1)
}
}
使用http://locahost:8080/myapp/test/test/1
从数据库中正确获取myClass1。
但现在我想传递两个域类。我试过这段代码:
class TestController {
def test(@RequestParameter('obj1') MyClass1 myClass1,
@RequestParameter('obj2') MyClass2 myclass2) {
log.debug(myClass1)
log.debug(myClass2)
}
}
使用http://localhost:8080/myapp/test/test?obj1.id=1&obj2.id=3
进行访问,不会获取任何内容。这是在控制器操作中使用数据绑定的正确方法吗?或者这不可能吗?
提前致意并表示感谢。
答案 0 :(得分:1)
您可以在控制器中使用它和其中一个:
// binds request parameters to a target object
bindData(target, params)
// exclude firstName and lastName
bindData(target, params, [exclude: ['firstName', 'lastName']])
// only use parameters starting with "author." e.g. author.email
bindData(target, params, "author")
bindData(target, params, [exclude: ['firstName', 'lastName']], "author")
// using inclusive map
bindData(target, params, [include: ['firstName', 'lastName']], "author")
def User bindUser(params) {
def User user = new User()
def Human human = new Human()
bindData(user, params["user"])
bindData(human, params["humna"])
if(!human)
human.save(failOnError:true)
if(!user)
user.save(failOnError:true)
}
//alloha~
}