2014-05-07 67 views
0

我是groovy和grails的新手,因此這個簡單的疑問。我有這樣的地圖:[0:[A,B,C,D],1:[a,b,c,d]]。我想要如下顯示它:
A:a
B:b
C:c
D:d

如何顯示數據列明智嗎?我現在擁有的.gsp顯示如下,它所做的就是按行顯示值。

在Grails中渲染地圖的最佳方式

<!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> 

指着我理解在常規地圖正確的方向也可以理解。謝謝。

+0

參見[Groovy的地圖(http://groovy.codehaus.org/JN1035-Maps)用例/例子和[API](HTTP: //groovy.codehaus.org/groovy-jdk/java/util/Map.html)以獲取地圖上的可用方法。希望有所幫助。如果您需要更多信息,請留言。 :) – dmahapatro

回答

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> 
+0

這適用於我在另一個答案中描述的同一個控制器。 –

+0

我有一個工作控制器,我需要的只是顯示代碼。它幫助!謝謝。 – NanoNi

+0

順便說一句,我也必須在表格上工作很多,你能指點我一個資源,我可以學習在gsp文件中顯示錶的不同方法嗎? – NanoNi

0

我假設你的例子是你真正問題的簡化版本。根據你真正想要做什麼,你有很多選擇。一件簡單的事情可能是這樣的(但是組織表你喜歡,但是這應該給你的想法...):

// 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

嗨,是的,你是對的,認爲它是一個更大的問題的一部分。但是這個仍然不能解決它。我仍然明智地得到輸出行。我想要A:a,然後B:B等等。這個給了我A B C D,然後在下一行給了B c D。你能告訴我如何得到這個? – NanoNi

相關問題