我正在开发一个AppEngine-java项目。我使用VelocityEngine作为模板工具来自定义Html文件。我已将模板文件放在google-cloudstorage中。我想要的只是将该文件初始化为'模板'通过Java中的getTemplate()方法。我在这里需要帮助..
..只是想这样做,
VelocityEngine ve = new VelocityEngine();
ve.init();
Template t = ve.getTemplate("http://storage.googleapis.com/....bucket_name...../html_templates/....file_name....html");
提前致谢。
答案 0 :(得分:0)
我发现了一种方法,但以不同的方式,
try {
BufferedInputStream input = new BufferedInputStream(new URL("http://storage.googleapis.com/.....appspot.com/html_templates/....html").openStream());
ByteArrayOutputStream baos = new ByteArrayOutputStream();
org.apache.commons.io.IOUtils.copy(input, baos);
byte[] bytes = baos.toByteArray();
Reader templateReader = new BufferedReader(new InputStreamReader(new ByteArrayInputStream(bytes)));
VelocityContext context = new VelocityContext();
context.put("template_field", getString(fieldVariable));
...
StringWriter swOut = new StringWriter();
Velocity.evaluate(context, swOut, "log tag name", templateReader);
return swOut.toString()
}catch (Exception e) {
e.printStackTrace();
}
此代码将在通过其URL读取模板并通过Velocity Engine向其添加上下文后生成字符串。