两个portlet之间的导航

时间:2015-07-21 11:27:23

标签: portlet portal websphere-portal jsr286

在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容器中。)

1 个答案:

答案 0 :(得分:1)

好吧,当您通过打开门户网站上的页面访问portlet并从包含portlet A的页面转到包含portlet B的页面时,它只会传递portlet的呈现阶段,例如:

  1. 用户转到第A页
  2. 门户网站容器调用portlet A的 RENDER 阶段
  3. 用户转到第B页
  4. 门户网站容器调用portlet B的 RENDER 阶段
  5. 但是,在使用布线或IPC时,您将要执行一些额外的步骤。首先,设置事件(在portlet A中)只能在操作阶段完成,因此您必须首先向portlet A发送操作请求。然后它将发送事件,事件代理(门户容器的一部分)将作出反应并将您发送到正确的页面,在该页面中它将进入事件阶段(processEvent()),然后是呈现阶段

    所以它看起来像这样:

    1. 用户转到第A页
    2. 门户网站容器调用portlet A的 RENDER 阶段
    3. 用户触发操作(点击按钮/链接)
    4. 门户网站容器调用portlet A的 ACTION 阶段
    5. 您可以设置一个事件
    6. ,而不是通常进入渲染阶段
    7. 门户网站容器调用portlet B的 EVENT 阶段
    8. 门户网站容器调用portlet B的 RENDER 阶段
    9. 因此,需要额外的步骤才能使小部件间通信工作。首先,您必须在另一个portlet的操作阶段触发事件,其次,它将首先进入目标portlet的事件阶段,然后再进入渲染阶段。