Использование переменных для начала / конца с тегом шаблона списка - PullRequest
0 голосов
/ 01 мая 2011

Я использую Play Framework и у меня есть вопрос о шаблонах:

Я хочу использовать список в качестве цикла for с переменными from и to:

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

И result.startPage, и results.endPage имеют допустимые значения. Я не получить сообщение об ошибке, однако вывод не отображается. Что я делать неправильно?

Спасибо

1 Ответ

0 голосов
/ 01 мая 2011

РЕДАКТИРОВАТЬ: Потратив время на написание большого ответа, в вашем коде есть ошибка! В вашем теге #list у вас должно быть items, а не pages. Ваш код должен читать.

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

Для тех, кому интересно, как работает переменная Groovy Range, ниже приведено описание, а не я удаляю длинный ответ!

Я думаю, что вы используете метод диапазона неправильно. Конструкция Groovy Range для цикла for позволяет вам переходить от одного значения к другому. Обычно это целое число или строка, а не список.

Итак, если вы сделаете следующее, будет напечатано от 0 до 10

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

Однако, значения могут быть установлены в вашем контроллере. Поэтому, если вы хотите использовать переменные start и end, установленные в вашем контроллере (предположите, что они установлены в 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. Даже если я отправлю эти переменные через инкапсулированный в класс класс, он все равно будет работать нормально.

Вы уверены, что startPage и endPage являются целочисленными значениями?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...