Почему здесь отображается неверный шаблон? - PullRequest
1 голос
/ 09 января 2012

Я звоню render() с несколькими аргументами, первый из которых - String аргумент, который я получил в качестве параметра:

public static void action (String url) { ...

визуализации (URL, ...); }

Я получаю эту ошибку:

The template http://the.contents.of/urlParameter does not exist.

Теперь я отлаживаю через render(), где я вижу этот фрагмент:

protected static void render(Object... args) {
    String templateName = null;
    if (args.length > 0 && args[0] instanceof String && LocalVariablesNamesTracer.getAllLocalVariableNames(args[0]).isEmpty()) {

        // I'm getting into this branch

        templateName = args[0].toString();
    } else {
        templateName = template();
    }
    renderTemplate(templateName, args);
}

Что пытается сделать if? Почему я вхожу в это - это потому, что я не использую локальную переменную для url? Это задокументировано? В чем здесь причина?

Я использую версию 1.2.x-c40cf37 (это где-то после 1.2.4).

1 Ответ

3 голосов
/ 09 января 2012

Если в качестве первого аргумента указана строка, то предполагается, что это имя шаблона для визуализации.

Пример:

render("@password", url);

Это отобразит шаблон пароля и передаст ему переменную url.

В вашем случае вы могли бы сделать что-то вроде этого:

render("@action", url);

EDIT:

В качестве альтернативы вы также можете сделать что-то вроде этого:

renderArgs.put("url", url);
render();

Надеюсь, это поможет.

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