在Freemarker中似乎没有方便的内置功能来在模板中生成随机UUID。
我能想到的最好的方法是创建一个Freemarker method;在我的Java 8代码中,我将注入方法以供以后在模板中使用。例如:
library()
在Freemarker模板中,我可以使用如下方法:
public String generate(Map<String, Object> data, String templateLocation) throws IOException, TemplateException {
try (StringWriter writer = new StringWriter()) {
Template template = configuration.getTemplate(templateLocation);
// UUID generation method injected in this line:
data.put("uuid", (TemplateMethodModelEx) (list) -> UUID.randomUUID());
template.process(data, writer);
return writer.toString();
}
}
在Freemarker中生成uuids是否有更方便的解决方案?
这是我的Maven依赖:
${uuid()}
答案 0 :(得分:3)
您可以使用statics在模板中致电randomUUID
:
${statics["java.util.UUID"].randomUUID()}
答案 1 :(得分:2)
您可以使用Configuration.setSharedVariable(...)
将该方法全局添加到配置中。