我无法从FTL文件中的值堆栈中检索值。这是代码。
Action类包含一个名为'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);
我正在传递包含最近执行的Action的值Stack。但是FTL正在抛出异常
在sample.ftl的第1行第3行未定义表达式名称
我尝试传递会话而不是值堆栈,我可以在FTL中获取值。
请建议我从值类中获取值从Action类到FTL的方法。 非常感谢。
答案 0 :(得分:0)
我有办法从最近执行的Action Class中获取值。只需更改最后一条语句如下
template.process(invocation.getAction(), out);
由于