我正在用速度加载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}形式来区分实际名称。