vec*_*tor 2 grails servlets grails-2.0
我试图在这样的控制器中访问servletContext,但不断获取空指针异常:
def servletContext = getServletContext()
def serverPath = servletContext.getRealPath("/")
Run Code Online (Sandbox Code Playgroud)
...我刚刚在邮件列表上遇到过这个问题,但建议的唯一"正确"解决方法是在BootStrap.groovy的init闭包中设置它:
import org.codehaus.groovy.grails.web.context.ServletContextHolder as SCH
class BootStrap {
def init = { servletContext ->
SCH.servletContext = servletContext
}
....
Run Code Online (Sandbox Code Playgroud)
......这仍然是这样吗?这个解决方案对我没有任何影响,仍然有NPE
提前致谢
servletContext是一个弹簧bean,如果def servletContext在控制器中声明,它将自动注入.
持有人物品正在消失.获取ServletContext或ApplicationContext的推荐方法是通过grailsApplicationspring bean.对于无法访问的情况grailsApplication(例如静态方法),您可以创建自己的持有者类.
Burt Beckwith撰写了几篇关于该主题的精彩博文:从没有持有者的域类访问GrailsApplication和ApplicationContext,创建自己的Grails holder类.
| 归档时间: |
|
| 查看次数: |
3324 次 |
| 最近记录: |