我正在使用一些参数调用render()
,其中第一个参数是String
参数:
public static void action(String url){ ...
渲染(URL,...); }
我收到了这个错误:
The template http://the.contents.of/urlParameter does not exist.
现在,我正在通过render()
调试,我看到了这个片段:
protected static void render(Object... args) {
String templateName = null;
if (args.length > 0 && args[0] instanceof String && LocalVariablesNamesTracer.getAllLocalVariableNames(args[0]).isEmpty()) {
// I'm getting into this branch
templateName = args[0].toString();
} else {
templateName = template();
}
renderTemplate(templateName, args);
}
if
试图完成的是什么?我为什么要进入它 - 是因为我没有为url
使用局部变量?这记录了吗?这是什么原因?
我使用的是1.2.x-c40cf37版本(在1.2.4之后的某个地方)。
答案 0 :(得分:3)
如果您提供一个字符串作为第一个参数,那么它假定它是要呈现的模板的名称。
示例:
render("@password", url);
这将呈现密码模板并将url变量传递给它。
在你的情况下,你可以做这样的事情:
render("@action", url);
编辑:
作为替代方案,您也可以这样做:
renderArgs.put("url", url);
render();
希望它有所帮助。