为什么这里呈现的模板不正确?
我使用几个参数调用 render()
,其中第一个是我作为参数获得的 String
参数:
public static void action(String 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);
}
What is the if
试图完成?为什么我要进入它 - 是因为我没有使用 url
的局部变量吗?这有记录吗?这里的道理是什么?
我正在使用版本 1.2.x-c40cf37(位于 1.2.4 之后的某个位置)。
I'm calling render()
with a few arguments, the first of which is a String
argument that I got as a parameter:
public static void action(String url) {
...
render(url,...);
}
I'm getting this error:
The template http://the.contents.of/urlParameter does not exist.
Now, I'm debugging through render()
, where I see this snippet:
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);
}
What is the if
trying to accomplish? Why am I getting into it - is it because I'm not using a local variable for url
? Is this documented? What's the reasoning here?
I'm using version 1.2.x-c40cf37 (that's somewhere after 1.2.4).
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果您提供一个字符串作为第一个参数,则它假定它是要呈现的模板的名称。
示例:
这将呈现密码模板并将 url 变量传递给它。
在你的情况下,你可以做这样的事情:
编辑:
作为替代方案,你也可以做这样的事情:
希望它有帮助。
If you provide a string as the first argument, then it assumes that it is the name of the template to render.
Example:
That will render the password-template and pass the url variable to it.
In your case you could do something like this instead:
EDIT:
As an alternative you could also do something like this:
Hope it helps.