Grails groovyPageRenderer error: Cannot invoke method render() on null object
Grails groovyPageRenderer error: Cannot invoke method render() on null object
如果没有这个错误,我无法让 Grails groovyPage 渲染器工作。我尝试了一些不同的解决方案,但似乎无法解决它。我已经在 Grails 2.1.1 和 2.4.4 上用 servlet 2.5 和 3.0 试过了。也尝试按照下面博客上的示例进行操作。
http://mrhaki.blogspot.com/2012/03/grails-goodness-render-gsp-views-and.html
来源:
class RenderTestController {
static allowedMethods = [save: "POST", update: "PUT", delete: "DELETE"]
def renderEx {
def updateList= RenderService.updateRender()
}
服务:
package renderexample
import grails.gsp.PageRenderer
import java.util.List;
import java.util.Map;
class RenderService {
public static List updateRender() {
PageRenderer groovyPageRenderer
def gspReturn = []
gspReturn = [-1, 1, 2]
def htmlBody = groovyPageRenderer.render(template:'/emails/_renderUpdate', model: [results: gspReturn])
println htmlBody
return gspReturn
}
}
错误 2015-08-10 15:39:45,801 [localhost-startStop-1] 错误 context.GrailsContextLoaderListener - 初始化应用程序时出错:创建名称为 'renderexample.RenderTestController' 的 bean 时出错:实例化豆失败;嵌套异常是 org.springframework.beans.BeanInstantiationException:无法实例化 bean class [renderexample.RenderTestController]:构造函数抛出异常;嵌套异常是 java.lang.NullPointerException:无法在空对象
上调用方法 render()
消息:创建名称为 'renderexample.RenderTestController' 的 bean 时出错:bean 实例化失败;嵌套异常是 org.springframework.beans.BeanInstantiationException:无法实例化 bean class [renderexample.RenderTestController]:构造函数抛出异常;嵌套异常是 java.lang.NullPointerException:无法在空对象上调用方法 render()
线 |方法
->> 262 | 运行 在 java.util.concurrent.FutureTask
感谢任何帮助。谢谢
我不知道你为什么要 updateRender
方法是静态的。没有充分的理由这样做。
尝试这样的事情...
class RenderTestController {
def renderService
def renderEx() {
def updateList= renderService.updateRender()
// ...
}
}
class RenderService {
PageRenderer groovyPageRenderer
List updateRender() {
def gspReturn = []
gspReturn = [-1, 1, 2]
def htmlBody = groovyPageRenderer.render(template:'/emails/_renderUpdate', model: [results: gspReturn])
// ...
}
}
如果没有这个错误,我无法让 Grails groovyPage 渲染器工作。我尝试了一些不同的解决方案,但似乎无法解决它。我已经在 Grails 2.1.1 和 2.4.4 上用 servlet 2.5 和 3.0 试过了。也尝试按照下面博客上的示例进行操作。
http://mrhaki.blogspot.com/2012/03/grails-goodness-render-gsp-views-and.html
来源:
class RenderTestController {
static allowedMethods = [save: "POST", update: "PUT", delete: "DELETE"]
def renderEx {
def updateList= RenderService.updateRender()
}
服务:
package renderexample
import grails.gsp.PageRenderer
import java.util.List;
import java.util.Map;
class RenderService {
public static List updateRender() {
PageRenderer groovyPageRenderer
def gspReturn = []
gspReturn = [-1, 1, 2]
def htmlBody = groovyPageRenderer.render(template:'/emails/_renderUpdate', model: [results: gspReturn])
println htmlBody
return gspReturn
}
}
错误 2015-08-10 15:39:45,801 [localhost-startStop-1] 错误 context.GrailsContextLoaderListener - 初始化应用程序时出错:创建名称为 'renderexample.RenderTestController' 的 bean 时出错:实例化豆失败;嵌套异常是 org.springframework.beans.BeanInstantiationException:无法实例化 bean class [renderexample.RenderTestController]:构造函数抛出异常;嵌套异常是 java.lang.NullPointerException:无法在空对象
上调用方法 render()消息:创建名称为 'renderexample.RenderTestController' 的 bean 时出错:bean 实例化失败;嵌套异常是 org.springframework.beans.BeanInstantiationException:无法实例化 bean class [renderexample.RenderTestController]:构造函数抛出异常;嵌套异常是 java.lang.NullPointerException:无法在空对象上调用方法 render() 线 |方法 ->> 262 | 运行 在 java.util.concurrent.FutureTask
感谢任何帮助。谢谢
我不知道你为什么要 updateRender
方法是静态的。没有充分的理由这样做。
尝试这样的事情...
class RenderTestController {
def renderService
def renderEx() {
def updateList= renderService.updateRender()
// ...
}
}
class RenderService {
PageRenderer groovyPageRenderer
List updateRender() {
def gspReturn = []
gspReturn = [-1, 1, 2]
def htmlBody = groovyPageRenderer.render(template:'/emails/_renderUpdate', model: [results: gspReturn])
// ...
}
}