Freemarker 中似乎没有方便的内置功能来在模板中生成随机 UUID。
我能想到的最好办法就是创建一个 Freemarker method ;在我的 Java 8 代码中,我注入(inject)了该方法以供以后在模板中使用。示例:
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 模板中,我可以使用如下方法:
${uuid()}
在 Freemarker 中是否有更方便的生成 uuid 的解决方案?
这是我的 Maven 依赖项:
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>2.3.25-incubating</version>
<scope>test</scope>
</dependency>
最佳答案
您可以使用statics在模板中调用randomUUID
:
${statics["java.util.UUID"].randomUUID()}
This object exposes just about any class' static methods if it's used as a hash with class name as the key.
关于java - Freemarker:方便生成UUID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45957527/