使用变量开始/结束列表模板标记

时间:2011-05-01 11:12:59

标签: java templates playframework

我正在使用Play框架并对模板有疑问:

我想使用list作为带有from和to变量的for循环:

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

results.startPage和results.endPage都有有效值。我不 收到错误消息,但不显示输出。我是什么 做错了?

谢谢

1 个答案:

答案 0 :(得分:0)

编辑:花了一些时间写一个大答案,你的代码中有一个错误! 在#list标记中,您应该有items,而不是pages。你的代码应该阅读。

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

对于那些对Groovy Range变量如何工作感兴趣的人,下面是一个描述,而不是我删除长答案!

我认为你以错误的方式使用范围方法。 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是整数值吗?