Grails中的控制器

kno*_*orv 7 grails controller grails-orm

我在Grails写了一个小的webapp,我对控制器设计和使用GORM的最佳实践有以下问题:

我将用户对象存储在session.user中.目前,我的所有操作方法都以下面的代码开头,以确保有效用户已登录并且用户对象是新鲜的:

class FooController {
  def actionMethodThatRequiresAValidUser = {
    if (!session?.user) {
      redirect(controller: "authentication", action: "login")
    }
    session.user.refresh()
    ...
    /* do stuff */
    ...
  }
}
Run Code Online (Sandbox Code Playgroud)

这是最佳做法吗?它能以更好和/或更简洁的方式完成吗?

Bar*_*ler 9

使用过滤器,这样您就可以将相同的重复代码放在过滤器中,并使控制器专注于实际操作.