我对 Grails 会话有疑问。我正在考虑为我的会话处理提供一个服务类。所以我创建了一个名为“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() ”。
我的服务类的使用,例如在控制器中:
class SampleController {
SessionService sessionService
def selectAnything = {
sessionService.setTestvar("test-value")
render(view: "testview")
}
}
我在这里做错了什么?这是正确的方法吗?还是我必须在每个方法中设置“session = request.session”?
希望能得到你的帮助。
非常感谢您提前。
干杯,
马可