我正在用速度加载vm tgemplate并更改一些参数
我有大约10个可以在模板中更改的参数

对于我模板的以下部分

window.location = "$html5Dirhtml5/index.html?page=$pageNumber"


我得到这个输出

window.location = "$html5Dirhtml5/index.html?page=1"


知道为什么速度不转换html5Dir属性而是设置页面吗?

这些属性肯定存在于传递给速度的属性中,我已经检查过了
我的速度代码如下

public static StringWriter generateTextFromTemplate(String templateFile, Map<String, String> params) {
    LOG.debug("Entered generateTextFromTemplate - templateFile:{}", templateFile);


    StringWriter writer = null;
    try {
        VelocityEngine velocityEngine = new VelocityEngine();
        velocityEngine.setProperty(RuntimeConstants.RESOURCE_LOADER, "classpath");
        velocityEngine.setProperty("classpath.resource.loader.class", ClasspathResourceLoader.class.getName());
        velocityEngine.init();

        VelocityContext velocityContext = new VelocityContext();

        for (Map.Entry<String, String> entry : params.entrySet()) {
            String key = entry.getKey();
            String value = entry.getValue();
            velocityContext.put(key, value);
            LOG.error("key:{}, value:{}", key, value);
        }

        //  get the Template
        Template template = velocityEngine.getTemplate(templateFile);

        //  now render the template into a Writer
        writer = new StringWriter();
        template.merge( velocityContext, writer );

    } catch (Exception e) {
       LOG.error("{}", e);
       writer = null;
    }

    return writer;
}

最佳答案

首先,检查是否有实际的html5Dirhtml5参数。如果这不是您想要的参数,而是html5Dir,则需要在模板中使用$ {html5Dir}形式来区分实际名称。

07-27 14:07