我在Grails Session上遇到问题。我当时正在考虑为 session 处理设置一个服务类。因此,我创建了一个名为“SessionService”的类(位于grails-app / services / grails /下)。
class SessionService {
static transactional = true
GrailsWebRequest request = RequestContextHolder.currentRequestAttributes()
GrailsHttpSession session = request.session
def setTestvar(String value) {
if (session != null)
session.setAttribute("sTeststring", value)
}
def getTestvar() {
if (session != null)
session.getAttribute("sTeststring")
}
}
现在的问题是,我得到一个Nullpointer-Exception:“方法引发'java.lang.NullPointerException'异常。无法评估org.codehaus.groovy.grails.web.servlet.mvc.GrailsHttpSession.ToString()”。
我的服务等级的用法,例如在 Controller 中:
class SampleController {
SessionService sessionService
def selectAnything = {
sessionService.setTestvar("test-value")
render(view: "testview")
}
}
我在这里做错了什么?这是正确的方法吗?还是在每种方法中都必须设置“session = request.session”?
希望得到您的帮助。
提前非常感谢您。
干杯,
马可
最佳答案
RequestContextHolder来自哪里?在grails 3.3.8中不可见(至少在插件中)
关于session - Grails在Service类中获得Session和Management,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7062605/