如何将HashMap传递给gsp页面然后再传回控制器?

时间:2014-02-28 21:11:21

标签: list grails groovy hashmap gsp

我有需要在

结构中传递的值
type1 : value1, value2, value3
type2 : value4, value5, value6
type3 : value7, value8, value8

所以我在我的控制器中创建了一个HashMap<String, ArrayList<String>>(),并将其传递给我的gsp文件,如下所示:

def queryMap = new HashMap<String, ArrayList<String>>()
//fill in data
render(template: "/item/myPage", model: [queryMap: queryMap])

然后在我的gsp页面中,我想将它传回给我的控制器:

<g:link action="myNewPage" controller="item" params='[queryMap: "${queryMap}"]'>fun</g:link>

然后在myNewPage控制器方法中我想得到这样的地图:

def queryMap = params.queryMap as HashMap

但由于某种原因,我的地图没有正确传递?如何正确地将带有列表的地图传递给我的gsp文件,然后再传回我的控制器?

如果您需要更多信息,请与我们联系。

2 个答案:

答案 0 :(得分:3)

如下所示,无需插入queryMap(不含${}

<g:link action="myNewPage" 
        controller="item" 
        params="[queryMap: queryMap]">fun</g:link>

此外,您不需要推断类型as HashMap,默认情况下也是如此。我也同意@Isammoc关于提出适当的数据模型(使用表格等),而不是来回流过模型。

答案 1 :(得分:0)

您可以尝试序列化整个地图,然后传递它并在需要时反序列化。您可以将整个Map转换为JSON并将其作为String传递。