如何通过 getTemplate() 方法从外部 URL 获取 VelocityEngine 模板?

How to get VelocityEngine template from an external URL through getTemplate() method?

我正在开发 AppEngine-java 项目。我正在使用 VelocityEngine 作为模板工具来自定义 Html 文件。我已将我的模板文件放在 google-cloudstorage。我想要的只是通过 Java 中的 getTemplate() 方法将该文件初始化为 'Template'。我需要帮助..

..就是想做这个,

VelocityEngine ve = new VelocityEngine();
ve.init();
Template t = ve.getTemplate("http://storage.googleapis.com/....bucket_name...../html_templates/....file_name....html");

提前致谢。

我找到了一种方法,但方式不同,

 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 向其添加上下文后生成一个字符串。