renderArgs пуст в шаблоне в игре! фреймворк - PullRequest
2 голосов
/ 10 октября 2011

У меня есть такая функция контроллера

public static void renderCustomersList() {
        System.out.println("renderArgs"+renderArgs.toString());
        render(renderArgs);
    }

В моем шаблоне

renderArgs $ {renderArgs.toString ()}

У меня есть renderArgs с напечатанным значениемв моей консоли, но когда я передаю шаблону его печать как ноль.Я хотел эти значения в моем main.html.Я напечатал renderArgs в обоих моих renderCustomersList.html и main.html значения были нулевые в обоих шаблонах.В чем может быть ошибка.

Ответы [ 2 ]

6 голосов
/ 10 октября 2011

Вам не нужно передавать renderArgs в качестве параметра функции render - все переменные в области действия renderArgs будут все равно доступны в шаблоне. Но вместо доступа к самому объекту renderArgs в шаблоне, вместо этого перейдите к независимым значениям - см. Ниже.

Контроллер:

public static void renderCustomersList() {
    ... // some code to initialize yourVariable
    renderArgs.put("yourVariable", yourVariable);
    render(); // renderArgs not needed as a parameter
}

А в шаблоне:

${yourVariable}
2 голосов
/ 10 октября 2011

Обратите внимание, что вам не нужно использовать renderArgs, если вы не хотите. Вы также можете передать некоторые параметры render() следующим образом:

public static void renderCustomersList() {
    ...
    render(customers, products, foobar); 
}

и затем вы можете получить эти параметры в шаблоне с именами переменных:

#{list items:customers, as:cust}
...
Foobar: ${foobar}

Единственный случай, в котором необходимо для использования renderArgs, - это если вы хотите использовать другие имена для ваших параметров в шаблоне, чем в контроллере. Это потенциально сбивает с толку, поэтому я стараюсь этого не делать.

...