Java 为什么我会得到一个看似简单的StringTemplate代码的NullPointerException?
我想使用StringTemplate 4在我的Google应用程序引擎应用程序中呈现视图 在我的控制器中(如果有必要的话,我使用Slim3 MVC框架),我有以下代码:Java 为什么我会得到一个看似简单的StringTemplate代码的NullPointerException?,java,google-app-engine,stringtemplate-4,Java,Google App Engine,Stringtemplate 4,我想使用StringTemplate 4在我的Google应用程序引擎应用程序中呈现视图 在我的控制器中(如果有必要的话,我使用Slim3 MVC框架),我有以下代码: STGroup group = new STGroupDir("templates/default",'$','$'); ST stPage = group.getInstanceOf("page"); stPage.add("title", "Welcome to my Page!"); stPage.add("title_h
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;
我在目录war/templates/default
当我运行这段代码时,我得到以下NullPointerException
。联机查看ST代码时,它似乎与文件的路径有关。通过导航到模板文件,可以通过web浏览器访问模板文件的路径
以下是例外情况的相关部分:
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>
>>
page(title,title\u h1):=>
结果是,我的page.st文件的格式不正确。在本例中,您将得到NullPointerException
。我已经更新了我的问题,为page.st.添加了正确的格式。每当st文件中出现错误并且调用其实例时,都会发生空指针异常,因此最好始终诊断st文件