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

使用Grails2.3.7。我正在尝试使用Grails控制器动作参数绑定。如果我有此代码:

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做了一个绑定…如果你不想要的话?什么是不可能的?