Grails-域类中的访问请求对象

Grails-域类中的访问请求对象,grails,dns,request,Grails,Dns,Request,是否有可能在域类的方法中访问请求对象的属性 因此,我想访问我的域基类的request.getRemoteAddr()内部beforeinstert()和beforeUpdate(),以便自动保存IP地址,而不必在每个控制器中对其进行编码 提前感谢。您不应该直接访问域类中的请求或会话,因为您永远不知道域对象是在哪个上下文中保存/更新的。这是故意的 如果情况真的很危急,您可以使用一种变通方法: import org.springframework.web.context.request.Reques

是否有可能在域类的方法中访问
请求
对象的属性

因此,我想访问我的域基类的
request.getRemoteAddr()
内部
beforeinstert()
beforeUpdate()
,以便自动保存IP地址,而不必在每个控制器中对其进行编码


提前感谢。

您不应该直接访问域类中的
请求
会话
,因为您永远不知道域对象是在哪个上下文中保存/更新的。这是故意的

如果情况真的很危急,您可以使用一种变通方法:

import org.springframework.web.context.request.RequestContextHolder 

def request = RequestContextHolder.currentRequestAttributes()

您永远不应该这样做,我的建议是您基于域类创建一个服务,每次需要修改它时,从控制器或其他服务调用这些函数save()、update()。您的域类不应该执行任何业务逻辑!谢谢@hakuna1811-我会记住这一点。然后是否可以从服务类中访问
请求
对象,或者我应该在控制器中设置值,然后仅使用服务类保存域对象?