在JSR286中,我们可以通过以下方式从一个portlet转到另一个:
1)简单的导航 2)使用IPC(Inter Portlet通信)
我有两个portlet A和B.两个都有相应的Portlet.java文件(它处理portlet的生命周期)。当我们使用IPC从A到B时,B的Portlet.java将被调用,但如果我们使用导航从A到B,那么会发生什么呢?在导航中,B的Portlet.java是否会被调用?
(这里我们假设portlet A和B都在同一个portlet容器中。)
答案 0 :(得分:1)
好吧,当您通过打开门户网站上的页面访问portlet并从包含portlet A的页面转到包含portlet B的页面时,它只会传递portlet的呈现阶段,例如:
但是,在使用布线或IPC时,您将要执行一些额外的步骤。首先,设置事件(在portlet A中)只能在操作阶段完成,因此您必须首先向portlet A发送操作请求。然后它将发送事件,事件代理(门户容器的一部分)将作出反应并将您发送到正确的页面,在该页面中它将进入事件阶段(processEvent()
),然后是呈现阶段
所以它看起来像这样:
因此,需要额外的步骤才能使小部件间通信工作。首先,您必须在另一个portlet的操作阶段触发事件,其次,它将首先进入目标portlet的事件阶段,然后再进入渲染阶段。