我正在制作一个将各种类型的报告存储为域对象的 Web 应用程序,因此我有一个域对象HeadOfHousehold
,其中包含名称数据,以及对其他域对象(例如reports
、addresses
和任何依赖项)的引用。我正在尝试构建最近查看/创建的HeadOfHousehold
对象的列表。在多次谷歌搜索和搜索手册之后,服务似乎是一个合适的解决方案。所以我创建了ClientListService
:
@Transactional
class ClientListService {
static scope = "session"
String message // right now I'll be happy to just see the same message across
// pages I can add a list and manipulate it later.
}
我以为我可以在我的各种控制器中引用它,它会持续存在这样的东西:
def clientListService
def index(){
hasSearched = false
clientListService = new ClientListService(message: "Hello")
[errorMessage: params.errorMessage, clients:clientListService]
}
这应该在以后的控制器中可用:
class HeadOfHouseHoldController {
def clientListService
def index() {
[customer: HeadOfHousehold.get(params.id), clients: clientListService]
}//...
但是,当我尝试获取消息时,它看起来好像对象为空。从我的 index.gsp 中:
***************${clients?.message}********************
所以我不知道我是否没有正确定义会话(我没有做任何特别的事情),我是否误解了会话范围的工作原理,或者其他什么。我确实在定义了对象的原始页面上看到了正确的消息,但是在任何后续页面上都没有看到它。
另外,我不确定这是否是解决此问题的正确方法;现在我真正需要的只是我需要的列表HeadOfHouseholds
(所以我可以从其他页面添加到列表中),但是我可以看到可能将其他逻辑和项目添加到这样的类中。