Liferay中IPC之后的导航

时间:2015-01-29 10:37:37

标签: jsf liferay ipc liferay-6 portlet

我们希望在收到IPC事件后在Liferay中导航到其他portlet。 所以我们从一个portlet发送事件,从MVCPortlet实现第二个Portlet扩展,并通过一些信息接收事件! 所以我们想在Liferay中导航到第二个portlet。

我们收到的事件就是这个

@ProcessEvent(qname = "{http://liferay.com}empinfo")
public void handleProcessempinfoEvent(final javax.portlet.EventRequest request, final javax.portlet.EventResponse response) throws javax.portlet.PortletException, java.io.IOException

我们也覆盖了com.liferay.util.bridges.mvc.MVCPortlet中的方法,但是在发送事件后没有人调用。

有没有办法在liferay(6.1.2)中导航?

Thx Tim

1 个答案:

答案 0 :(得分:0)

事件是否得到处理?你是什​​么意思"导航到第二个portlet"?事件 - 默认情况下 - 仅分发到出现在同一页面上的portlet。如果要在不同页面上的portlet上接收事件,则必须明确配置Liferay以将事件分发到同一站点中的所有页面。请注意,这可能会深入了解您的表现。此外 - 一旦您导航到另一个页面 - 默认情况下,该页面上的portlet状态正在重置。

检查以下(及相关)portal.properties:

#
# Set this property to specify how events are distributed. If the value is
# "layout-set", then events will be distributed to all portlets contained in
# a layout set. If the value is "layout", then events will be distributed to
# all portlets that are present in a layout.
#
portlet.event.distribution=layout

#
# Set this property to specify how public render parameters are distributed.
# If the value is "layout-set", then public render parameters will be
# distributed to all portlets contained in a layout set. This will only work
# correctly if the property "layout.default.p_l_reset" is set to false. If
# the value is "layout", then public render parameters will be distributed
# to all portlets that are present in a layout.
#
portlet.public.render.parameter.distribution=layout

#
# Set the default value for the "p_l_reset" parameter. If set to true,
# render parameters are cleared when different pages are hit. This is not
# the behavior promoted by the portlet specification, but is the one that
# most end users seem to prefer.
#
layout.default.p_l_reset=true

如果您打算导航到其他页面,您还必须注意portlet API不涵盖这一点。因此,您必须确定如何查找相关页面,其URL以及如何重定向。在动作处理portlet中有更多逻辑并在那里进行重定向可能更容易:至少你只能处理一个动作。可能每个Action可能会处理几个事件 - 因此,如果它们发生冲突,将会触发哪个潜在重定向将被触发。如果它来自一个EventHandler,我会看到一个真正的重定向(任何方式)作为意外行为,但从ActionHandler可以理解。