Невозможно получить значения в ftl из стека значений в пользовательском типе результата - PullRequest
0 голосов
/ 13 марта 2010

Я не могу получить значение из стека значений в файле FTL. Вот код.

Класс действия содержит свойство с именем name

private String name;
public String getName() {
    return name;
}
public void setName(String name) {
    this.name = name;
}

public String execute(){
    setName("From value stack .. ");
    return SUCCESS;
}

FTL код:

${name}

Пользовательский тип результата. Метод doExecute

Configuration configuration = new Configuration();

String templatePath = "/ftl";
ServletContext context = ServletActionContext.getServletContext();
configuration.setServletContextForTemplateLoading(context, templatePath);
configuration.setObjectWrapper(new DefaultObjectWrapper());

Template template = configuration.getTemplate("sample.ftl");
OutputStreamWriter out = new OutputStreamWriter(System.out);
template.process(ActionContext.getContext().getValueStack(), out);

Я передаю значение стека, которое также содержит недавно выполненное действие. Но FTL выбрасывает исключение

Имя выражения не определено в строке 1, столбце 3 в sample.ftl

Я попытался передать сессию вместо стека значений и мог получить значение в FTL.

Пожалуйста, предложите мне способ получить значения из класса Action в FTL из стека значений. Заранее спасибо.

1 Ответ

0 голосов
/ 13 марта 2010

У меня есть способ получить значения из недавно выполненного Action Class. Просто измените последнее утверждение следующим образом

template.process(invocation.getAction(), out);

Спасибо

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