Grails控制器操作中的多个域类绑定

时间:2014-03-28 12:29:31

标签: grails data-binding

使用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进行访问,不会获取任何内容。这是在控制器操作中使用数据绑定的正确方法吗?或者这不可能吗?

提前致意并表示感谢。

1 个答案:

答案 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~
    }