以下是已创建的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失败了