在Grails中渲染贴图的最佳方法

在Grails中渲染贴图的最佳方法,grails,groovy,maps,Grails,Groovy,Maps,我是groovy和grails的新手,因此有这个简单的疑问。我有一张这样的地图:[0:[a,B,C,D],1:[a,B,C,D]]。我想按如下方式显示它:A:AB:BC:CD:D如何按列显示数据?我现在拥有的.gsp如下所示,它所做的只是按行显示值。 <!DOCTYPE html> <html> <head> <meta name="layout" content="main"> <title>

我是groovy和grails的新手,因此有这个简单的疑问。我有一张这样的地图:[0:[a,B,C,D],1:[a,B,C,D]]。我想按如下方式显示它:
A:A
B:B
C:C
D:D

如何按列显示数据?我现在拥有的.gsp如下所示,它所做的只是按行显示值。

 <!DOCTYPE html>
<html>
    <head>
        <meta name="layout" content="main">
        <title>Parsed Map</title>
    </head>
    <body>      
        <table>
            <g:each in="${myMap}" var="element">
                <tr>
                    <g:each in="${element.value }" >
                            <th>${it}</th>
                         </g:each>

                    </tr>
                </g:each>
        </table>                
    </body>
</html>

解析地图
${it}

为我指出理解groovy中的映射的正确方向也将不胜感激。多谢各位

我认为你的例子是你真正问题的简化版本。根据你真正想做什么,你有很多选择。一件简单的事情可能是这样的(按照你喜欢的方式组织表格,但这会让你产生想法……):

//grails-app/controllers/com/demo/DemoController.groovy
包com.demo
类控制器{
def索引(){
//大概你是从某个地方得到这张地图的,这里没有硬编码
def someMap=[0:['A','B','C','D'],1:['A','B','C','D']]
def headers=someMap[0]
def values=someMap[1]
[标题:标题,值:值]
}
}
//grails应用程序/views/demo/index.gsp
解析地图
${heading}
${value}

假设您已经验证了列和标题列表具有相同数量的元素,您可以这样做

<html>
    <head>
        <meta name="layout" content="main">
        <title>Parsed Map</title>
    </head>
    <body>
        <table>
            <g:each var="heading" in="${headings}" status="counter">
                <tr>
                    <th>${heading}</th>
                    <td>${values[counter]}</td>
                </tr>
            </g:each>
        </table>
    </body>
</html>

解析地图
${heading}
${值[计数器]}

有关用例/示例以及地图上的可用方法,请参阅。希望有帮助。如果需要更多信息,请大声呼喊。:)嗨,是的,你认为这是一个更大问题的一部分是正确的。但这个问题仍然无法解决。我仍然按行获取输出。我要A:A,然后是B:B,等等。这个给我一个B:C,然后在下一行给我一个B:C。你能告诉我怎么得到这个吗?这和我在另一个答案中描述的控制器是一样的。我有一个工作的控制器,我所需要的只是显示代码。这有帮助!谢谢。顺便说一句,我也要处理很多表格,你能给我指一个资源,在那里我可以学习在gsp文件中显示表格的不同方式吗?
<html>
    <head>
        <meta name="layout" content="main">
        <title>Parsed Map</title>
    </head>
    <body>
        <table>
            <g:each var="heading" in="${headings}" status="counter">
                <tr>
                    <th>${heading}</th>
                    <td>${values[counter]}</td>
                </tr>
            </g:each>
        </table>
    </body>
</html>