2017-08-14 67 views
0

我在g:link中的相同params属性中添加命名参数和映射时遇到问题。 我可以把命名参数,例如:gsp链接将命名参数和映射放在相同的params属性

<g:link action="action" controller="controller" params='[hello:"hello",world:"world"]'>test</g:link> 

或者我可以在控制器中的地图和使用,在GSP链接参数,如:

<g:link action="action" controller="controller" params='${testParam}'>test</g:link> 

这两者形成正确的方式链接。但是现在我想在params属性里面的同一个链接中使用两种方式,比如:

<g:link action="action" controller="controller" params='${testMapParam},[hello:"hello",world:"world"]'>test</g:link> 

我不能这样做。这没有建立正确的链接。有没有办法做到这一点?请帮助我。

先进感谢, 干杯!

+0

尝试'PARAMS = “[打招呼:” 你好 “天下: ”世界“] ”'或'PARAMS =“ $ {[打招呼: ”你好“,天下: ”世界“]}”' – Vahid

+0

@vahid抱歉,但这不起作用。我需要同一个参数链接中的map和named参数。 – anishroniyar

回答

1

有时候,你真的不能击败simplicty:

def test() { 
    def map1=['a':1] 
    def map2=['a2':2] 

    def map3=map1+map2 
    println "000 ${map3} vs ${params}" 

    render view:'test', model:[map1:map1,map2:map2] 
} 

薪火映射到视图GSP:

<g:set var="map6" value="${[hello1:'hello2',world1:'world2'] }"/> 
<g:set var="currentParams" value="${params}"/> 
${map1 } ${map6} 
<g:link action="test" controller="test" params="${map1+map6+map2+currentParams}">test</g:link> 

显示此当我点击链接 {A = 1} {hello1 = hello2,world1 = world2}测试

我一旦点击网址是:

/test?a=1&hello1=hello2&world1=world2&a2=2&hello=hello&world=world 
000 [a:1, a2:2] vs [hello:hello, a:1, a2:2, world1:world2, hello1:hello2, world:world, action:test, controller:test] 

你正在做什么?没有

+0

非常感谢!它帮助了很多。 – anishroniyar

相关问题