0
我想使用StringTemplate 4在我的Google App Engine应用程序中呈现视图。为什么我会用看似简单的StringTemplate代码来得到一个NullPointerException?
在我的控制器(我使用它是否重要Slim3 MVC框架),我有这样的代码:
STGroup group = new STGroupDir("templates/default",'$','$');
ST stPage = group.getInstanceOf("page");
stPage.add("title", "Welcome to my Page!");
stPage.add("title_h1", "So glad you came!");
response.getWriter().print(stPage.render());
return null;
我在目录中有一个名为page.st
一个ST文件war/templates/default
当我运行此代码,我得到以下NullPointerException
。在线查看ST代码时,它似乎与文件的路径有关。通过浏览器访问模板文件的路径。
这里是异常的相关部分:
java.lang.NullPointerException
at org.stringtemplate.v4.STGroup.loadTemplateFile(STGroup.java:656)
at org.stringtemplate.v4.STGroupDir.loadTemplateFile(STGroupDir.java:176)
at org.stringtemplate.v4.STGroupDir.load(STGroupDir.java:136)
at org.stringtemplate.v4.STGroup.lookupTemplate(STGroup.java:230)
at org.stringtemplate.v4.STGroup.getInstanceOf(STGroup.java:165)
编辑:
我想通了,我的文件格式不正确。如果你的page.st文件是一个有效的格式,你将不会得到NullPointerException
。这是一个有效的page.st文件的例子。以上,我已经添加了从servlet呈现此页面所需的内容。
page(title,title_h1)::=<<
<!DOCTYPE html>
<head>
<title>$title$</title>
</head>
<body>
<h1>$title_h1$</h1>
</body>
</html>
>>
它适合我。谢谢 –