以下是已创建的gsp模板解析方法:

String renderGSPTemplate(String templateText, Map bindings){
        def output = new StringWriter()
        String pageName = bindings.remove('pageName')
        groovyPagesTemplateEngine.clearPageCache()
        Template template1 = groovyPagesTemplateEngine.createTemplate(templateText, pageName)
        Writable data = template1.make(bindings)
        data.writeTo(output)
        return output
    }

以下是我得到的异常(exception):
 Error java.lang.NullPointerException
| Error     at org.codehaus.groovy.grails.web.pages.GroovyPageOutputStack.lookupStack(GroovyPageOutputStack.java:102)
| Error     at org.codehaus.groovy.grails.web.pages.GroovyPageOutputStack.currentStack(GroovyPageOutputStack.java:76)
| Error     at org.codehaus.groovy.grails.web.pages.GroovyPage.initRun(GroovyPage.java:213)
| Error     at org.codehaus.groovy.grails.web.pages.GroovyPageWritable.doWriteTo(GroovyPageWritable.java:199)
| Error     at org.codehaus.groovy.grails.web.pages.GroovyPageWritable.writeTo(GroovyPageWritable.java:128)
| Error     at groovy.lang.Writable$writeTo.call(Unknown Source)
| Error     at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45)
| Error     at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)
| Error     at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116)
| Error     at com.verecloud.nimbus4.mail.TemplateParserService$$EPpsYO6i.renderGSPTemplate(TemplateParserService.groovy:37)

任何人都知道此错误的原因。

谢谢!

最佳答案

groovyPagesTemplateEngine使用HttpRequest,因此,如果我们没有从Web应用程序进行调用,它将失败并显示NullPointerException。

因此,使用NPE失败了

10-08 05:13