2013-04-29 67 views
0

我想傳遞一個正在創建的地圖,這個地圖是從已經點擊過的特定值創建的,並將其發送到我的查看頁面,以便它將填充我所做的選擇中的具體日期。但不管我做什麼,它都不會將我的地圖傳遞給控制器​​。我發送一個查詢來檢索我的控制器的值,然後將其放置到地圖中,然後通過[finalMap: finalMap]將其發送到我的查看頁面,但它不允許我在我的查看頁面中調用它。傳遞來自控制器的地圖

這裏是我的控制器處理來自查詢的結果,並將它們放置到地圖的功能:

def testFunction = { 

    def days = Utility.executeQuery("select date from Utility where week_id = ${params.utility.week_id}") 

    def testMap = days 
    def map = testMap.collect{[it, it]} 
    def finalMap = map.listIterator().reverse().collectEntries() 

    [finalMap: finalMap] 
    } 

即使我有它在地圖它不能從我的視圖頁面稱呼其爲在這裏看到:

<table id="mondayTimeSelection" border width = 450 height=200> 
     <thead> 
      <tr> 
       <g:each in="${finalMap}" var="e"><th style="text-align: center; width: 115px;">${e.key}</th></g:each> 
      </tr> 
     </thead> 
    </table> 

如何從我的控制器中的函數成功地將此映射傳遞給我的控制器?或者還有另一種方法我應該去做這件事?

+0

你會得到什麼錯誤?在調用視圖之前,您是否嘗試在控制器中打印出finalMap?以查看其中的內容? – 2013-04-29 16:51:54

+0

我在我的GSP上發現錯誤,它說它無法解析符號'finalMap'。但是我已經在控制器中輸出了finalMap的結果,並且它是正確的。 – thehoule64 2013-04-29 16:54:46

+0

你的gsp命名是否正確(即'testFunction.gsp')?或者是'testFunction.gsp'中包含的模板顯示的上述視圖代碼? – Kelly 2013-04-29 17:24:06

回答

0

您已驗證它確實顯示在控制器中? 當我強制地圖變成finalMap時 - 該頁面適用於我。 即:

def testFunction = { 

    def finalMap = ["test": "test", "test2":"Test2"] 

    [finalMap: finalMap] 
    } 
+0

是的,我有。我讓控制器輸出'finalMap',它包含了地圖應該具有的正確條目。 – thehoule64 2013-04-29 16:59:08

+0

因爲我設置了一個控制器,把這個測試函數放進去,並且你的代碼放在一個gsp中,並且它提供了兩個條目(test和test2) - 嘗試讓gsp打印出最終映射嗎?你使用的是什麼版本的grails? – 2013-04-29 17:05:21

+0

是的,我試圖讓GSP通過我的finalMap進行遍歷,然後打印我的表中的每個值。但'finalMap'永遠不會傳遞給GSP – thehoule64 2013-04-29 17:22:28

相關問題