我从阅读有关jsr286的文章中得到的印象是,事件特征使portlet能够在它们属于不同的.war文件时相互通信。
我只想确认即使2个portlet属于同一个war文件,他们可以通过事件进行通信的唯一方式。
由于servlet的整个请求转发功能不适用于portlet。这是对的吗?
答案 0 :(得分:0)
可以在相同战争或不同战争中的portlet之间使用Portlet事件。但是,portlet事件的一个限制是2个portlet必须位于同一页面上。
还有其他两种方法可以在两个portlet之间进行通信。您可以使用公共渲染参数。这个想法是第一个portlet设置一个参数,第二个portlet可以读取它以便检索该值。 您还可以使用PortletSession的Application范围来通信和共享数据。 PortletSession的应用程序范围(APPLICATION_SCOPE)在同一战争的所有portlet之间共享。