2011-05-01 52 views
0

我使用的遊戲框架,並有一個關於模板的問題:使用的開始/結束的變量與列表模板標籤

我想用列表作爲for循環與和變量:

#{list pages:results.startPage..results.endPage, as:'page'} 
${page} 
#{/list} 

results.startPage和results.endPage都有有效值。我沒有 收到錯誤消息,但是沒有輸出顯示。我在做什麼 錯?

感謝

回答

0

編輯:花時間寫一個大的答案後,就在你的代碼中的錯誤! 在#list標籤中,您應該有items,而不是pages。您的代碼應該閱讀。

#{list items:results.startPage..results.endPage, as:'page'} 
${page} 
#{/list} 

對於那些有興趣在如何Groovy的範圍變量的作品,下面是一個描述,而不是我刪除長的答案!

我認爲你正在以錯誤的方式使用範圍方法。 for循環的Groovy Range構造允許您從一個值循環到另一個值。這通常是一個整數或字符串,而不是一個List。

所以,如果你做到以下幾點,將打印0至10

#{list items:0..10, as:'i'} 
    ${i} 
#{/list} 

然而,值可以在控制器中進行設置。因此,如果您想要使用控制器中設置的startend變量集(假設它們設置爲0和10),則可以執行以下操作。

#{list items:start..end, as:'i'} 
    ${i} 
#{/list} 

我的控制器測試該構造如下,它工作正常。

public static void index() { 
    int start = 0; 
    int end = 10; 

    render(start, end); 
} 

這將打印相同的0到10.即使我通過封裝在類中發送這些變量,它仍然工作正常。

您確定startPageendPage是整數值嗎?

+0

真棒,感謝您的發現! – Jason 2011-05-01 12:55:59