Я новичок в 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>

Я также буду признателен за указание мне правильного направления для понимания карт в Groovy. Спасибо.

0
NanoNi 7 Май 2014 в 20:01

2 ответа

Лучший ответ

Предполагая, что вы уже подтвердили, что столбцы и списки заголовков имеют одинаковое количество элементов, вы можете сделать что-то вроде этого ...

<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>
2
Jeff Scott Brown 7 Май 2014 в 16:56

Я предполагаю, что ваш пример - это упрощенная версия вашей реальной проблемы. В зависимости от того, что вы действительно пытаетесь сделать, у вас есть несколько вариантов. Простая вещь может быть такой (организуйте таблицу, как вам нравится, но это должно дать вам представление ...):

// grails-app/controllers/com/demo/DemoController.groovy
package com.demo

class DemoController {

    def index() {
        // presumably you got this Map from somewhere and it isn't hardcoded here
        def someMap = [0:['A', 'B', 'C', 'D'], 1:['a', 'b', 'c', 'd']]

        def headings = someMap[0]
        def values = someMap[1]

        [headings: headings, values: values]
    }
}


// grails-app/views/demo/index.gsp
<html>
<head>
    <meta name="layout" content="main">
    <title>Parsed Map</title>
</head>
<body>
    <table>
        <tr>
            <g:each var="heading" in="${headings}">
                <th>${heading}</th>
            </g:each>
        </tr>
        <tr>
            <g:each var="value" in="${values}">
                <th>${value}</th>
            </g:each>
        </tr>
    </table>
</body>
</html>
0
Jeff Scott Brown 7 Май 2014 в 16:18