Grails控制器操作中的多域类绑定
使用Grails2.3.7。我正在尝试使用Grails控制器动作参数绑定。如果我有此代码:Grails控制器操作中的多域类绑定,grails,data-binding,Grails,Data Binding,使用Grails2.3.7。我正在尝试使用Grails控制器动作参数绑定。如果我有此代码: class TestController { def test(MyClass1 myClass1) { log.debug(myClass1) } } class TestController { def test(@RequestParameter('obj1') MyClass1 myClass1, @RequestParamet
class TestController {
def test(MyClass1 myClass1) {
log.debug(myClass1)
}
}
class TestController {
def test(@RequestParameter('obj1') MyClass1 myClass1,
@RequestParameter('obj2') MyClass2 myclass2) {
log.debug(myClass1)
log.debug(myClass2)
}
}
使用http://locahost:8080/myapp/test/test/1
。
但是现在我想通过两个域类。我尝试过以下代码:
class TestController {
def test(MyClass1 myClass1) {
log.debug(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
,不提取任何内容。这是在控制器操作中使用数据绑定的正确方法吗?或者这是不可能的
提前向您致意和感谢。您可以在控制器中使用以下功能之一:
// 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~
}
这是有用的,但并不完全是解决我所问问题的办法。如果Grails能够自动完成的话,我的目的是让代码尽可能清晰和标准。也许,根本不可能。不可能什么?你需要一个清晰的代码吗?grails做了一个绑定…如果你不想要的话?什么是不可能的?