Grails 无法使用Groovy访问参数映射

Grails 无法使用Groovy访问参数映射,grails,groovy,taglib,Grails,Groovy,Taglib,我不需要什么帮助,我怀疑这是因为我对Groovy语法缺乏理解。所以,事情是这样的: 在GSP页面上,我想从参数映射中设置一个字段的值,它是 ["id":"107901", "Field_10.value":"2", "Field_10":["value":"2"],"Field_11.value":"", "Field_11":["value":""],action:'abc'] 在gsp页面上,我想查找键字段{some id}.value的值 因此,我调用了一个标记,如,g.testTag

我不需要什么帮助,我怀疑这是因为我对Groovy语法缺乏理解。所以,事情是这样的:

在GSP页面上,我想从参数映射中设置一个字段的值,它是

 ["id":"107901", "Field_10.value":"2", "Field_10":["value":"2"],"Field_11.value":"", "Field_11":["value":""],action:'abc']
在gsp页面上,我想查找键字段{some id}.value的值

因此,我调用了一个标记,如,
g.testTag(id:field.id)
,其实现如下

def testTag = { attrs,body->

    println "params are ${params}"
    def result = ""
    def keyRequired = "Field_${attrs.id}.value"
    println "keyRequired >>>>> ${keyRequired.toString()}"
    params.each { key,value->
        println "key is ${key}"
        println "Value is ${value}"
        if (key.equals(keyRequired.toString())) {
            result = params.value
        }
    }
    println "Final result is >>>>>> ${result}"
}
在id中传递的值是10,并且我的参数如上所述打印,我希望得到一个值 与要显示的参数中的键相对应的2。但显然我看到了 结果为空

我做错了什么?有人能帮忙吗


感谢不是
result=params.value
,而是
result=value
不是
result=params.value
,而是
result=value
您必须更改行:

result = params.value
致:

在每个循环中,您基本上是说在params迭代中,您将每个键命名为“key”,每个值命名为“value”。因此,params.value实际上会在params映射中查找键值,该键值为null


有趣的是,你用钥匙做对了,但没有价值。可能只是分心了。

您必须更改线路:

result = params.value
致:

在每个循环中,您基本上是说在params迭代中,您将每个键命名为“key”,每个值命名为“value”。因此,params.value实际上会在params映射中查找键值,该键值为null


有趣的是,你用钥匙做对了,但没有价值。可能只是分心了。

这可能是您想要做的事情,使用groovy方式(无需在地图的键上循环)访问
“Field_10.value”:“2”

或者,这也是可行的,因为地图中有
“Field_10”:[“value”:“2”]

result=params["Field_${attrs.id}"].value

这很可能是您想要做的,使用groovy方式(无需在映射键上循环)访问
“Field_10.value”:“2”

或者,这也是可行的,因为地图中有
“Field_10”:[“value”:“2”]

result=params["Field_${attrs.id}"].value

没有胜利者。params.id=107901但是我想要10哦,是的。但是无论如何,可以肯定的是,你能同时打印属性吗?不。params.id=107901但是我想要10哦,是的。但无论如何,可以肯定的是,您能同时打印
attrs