1

我正在使用下面的代码来创建一个动态模板 -

Engine engine = Engine.builder().addDefaults().build();
Template t = engine.parse(" Dear:Your {obj.name}", null, "something");
Body obj = new Body();
obj.name = "ABC";
t.data("obj",obj).render()

我期待亲爱的:你的 ABC 作为渲染的结果。相反,我得到了,亲爱的:你的 NOT_FOUND

如果我做类似下面的事情,它会按预期工作 -

Template t = engine.parse(" Dear:Your {name}", null, "something"); 
t.data("name",name).render() 

不知何故,当使用 engine.parse 创建 qute 模板时,它们无法将对象理解为数据。如果我使用与 html 文件注入相同的内容 -

@Inject
Template something;
something.data("obj",obj).render();

这按预期呈现。知道我在做什么错吗?

4

1 回答 1

1

经过数小时的阅读文档(很少可用)和一些源代码后,我想我终于找到了答案。

我唯一要做的就是通过注入而不是创建一个新实例来使用现有的引擎实例。

更换 -

Engine engine = Engine.builder().addDefaults().build(); with
@Inject
Engine engine;

对我来说很好。

如果它可以帮助同一条船上的其他人,请在此处发布。

于 2020-11-09T17:30:13.717 回答