监听来自 Tapestry 组件的 spring 事件

Listening spring event from tapestry component

首先,如果我做错了什么,抱歉,这是我在 Whosebug 上的第一个 post。 现在,我的问题:

是否可以在 Tapestry 组件中监听 Spring 抛出的事件? 事件 (ShopChangedEvent) 是通过 ApplicationEventPublisher 从 Spring 前端服务发布的,我想在前端 Tapestry 组件中收听此事件。 我尝试将 "implements ApplicationListener" 添加到我的 Tapestry 组件并覆盖 onApplicationEvent 方法。

谢谢大家,

阿尔贝托

这是可能的,但它可能不是你想要的。

Tapestry 组件 "live" 在 HTTP 请求的范围内。每次您在 TML 标记中使用 UI 组件时,Tapestry 只会创建该组件的一个实例,并在所有 HTTP 请求中共享它。

因此,即使您将 UI 组件订阅到 ApplicationEventPublisher,您也无法在正确的请求周期中正确地 "receive" 事件。