grails如何遍历params并设置值

时间:2011-05-16 09:35:24

标签: grails groovy parameters params loops

是否有人编写了一个通用操作来迭代所有参数值并在对象上设置这些值?

我想写这样的东西:

def updateSomeObject = {obj->
    for (def key : params.keySet()) {
        if (obj.hasProperty(key) != null) {
            def strValue = params[key]
            obj[key] = strValue
    }
}

但这仅适用于String值。在我的情况下,有一对一的关联,所以它也必须与对象一起使用。

我不想将属性(它们的名称)设置为object,这些值为null。

3 个答案:

答案 0 :(得分:3)

我用它来循环grails params:

Collection<?> keys = params.keySet()
    for (Object key : keys) {
        //check if key=action and key=controller which is grails default params
        if (!key.equals("action") && !key.equals("controller")) {
            println key //print out params-name
            println params.get(key) //print out params-value
        }
    }

希望有帮助...

答案 1 :(得分:2)

看起来您正在尝试将请求参数绑定到对象。您真的不需要编写自己的代码来执行此操作,因为Grails控制器提供了一个bindData方法来执行此操作。

答案 2 :(得分:0)

这是你想要做的吗?

obj.properties = params

希望有所帮助