Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么我会得到一个看似简单的StringTemplate代码的NullPointerException?_Java_Google App Engine_Stringtemplate 4 - Fatal编程技术网

Java 为什么我会得到一个看似简单的StringTemplate代码的NullPointerException?

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

我想使用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_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文件