不在controller如何才能得到request或者是session?

oksonic 2009-12-29
在使用Acegi 插件中想实现登录后能把一些信息加入session中,可不知道如何才能实现。
后来看到可以使用监听事件来处理,但事件中却不知道如何获取request或是session.
wusema 2010-01-04
消灭零回复。
不需要监听事件就可以在Controller里控制 session 的,直接使用session关键字。
session.department?:getLoginUserDeptment()

getLoginUserDeptment为自定义的函数,返回department.
oksonic 2010-01-05
在session中是可以得到登录的用户信息,可是我要的是仅在登录后得到一个对像,并把这个对像放到session中去,总不能每个action都去做这件事吧。
lcllcl987 2010-01-07
class UserController {

def scaffold = User
   
def authenticate = {
println "${params.login}--- ${params.password}"
    def user = User.findByLoginAndPassword(params.login, params.password)
    if(user){
      session.user = user
      flash.message = "Hello ${user.name}!"
      redirect(controller:"plugin", action:"list")     
    }else{
      flash.message = "Sorry, ${params.login}. Please try again."
      redirect(action:"login")
    }
 
}

   
def login = {}

def logout = {
session.user = null;
redirect(action:"login")
}
}
agile_boy 2010-01-08
你可以参考官方User Guide的左侧有个Controller 所支持的全局变量
Global site tag (gtag.js) - Google Analytics