Session 如何在grails中的域类中使用会话
我想在表中存储loggedInUser。所以我使用session访问loggedInUser,但我得到的错误是这个类没有这样的属性session。如何在域中使用会话Session 如何在grails中的域类中使用会话,session,grails,Session,Grails,我想在表中存储loggedInUser。所以我使用session访问loggedInUser,但我得到的错误是这个类没有这样的属性session。如何在域中使用会话 class GenderAudit { String name User doneBy def GenderAudit(Gender gender,String operation) { this.name=gender.name this.doneBy = se
class GenderAudit {
String name
User doneBy
def GenderAudit(Gender gender,String operation)
{
this.name=gender.name
this.doneBy = session.loggedInUser
}
}
域类不应该知道关于HTTP层的任何信息。设置有权访问该数据的服务或控制器的值
另外,请注意,这样定义一个构造函数很好,但是您还必须为Hibernate定义一个无参数构造函数,因为它会创建新的空实例并调用setter。一般来说,我们在Grails中不使用参数化构造函数,因为Groovy添加的映射构造函数非常方便。域类不应该知道关于HTTP层的任何信息。设置有权访问该数据的服务或控制器的值
另外,请注意,这样定义一个构造函数很好,但是您还必须为Hibernate定义一个无参数构造函数,因为它会创建新的空实例并调用setter。一般来说,我们在Grails中不使用参数化构造函数,因为Groovy添加的映射构造函数非常方便。在控制器或服务中使用代码
new GenderAudit(name:gender.name, doneBy: session.loggedInUser).save()
我同意伯特·贝克维思的观点。从域类中删除所有构造函数。在控制器或服务中使用代码
new GenderAudit(name:gender.name, doneBy: session.loggedInUser).save()
我同意伯特·贝克维思的观点。从域类中删除所有构造函数。但我必须维护该类的构造函数。正如您在另一篇文章中所说,我使用了这个RequestContextHolder.currentRequestAttributes()会话。这很好。非常感谢您,但是我必须维护这个类的构造函数。正如您在另一篇文章中所说,我使用了这个RequestContextHolder.currentRequestAttributes()会话。这很好。非常感谢你,伯特