Liferay Action Hook:如何指定磁贴重定向?

Liferay Action Hook: how to specify a tiles redirect?

我按照官方文档创建了一个 Liferay 6.2 钩子,一切正常。

现在我需要,在渲染阶段和几种情况下,我的用户将被重定向到特定的图块。

原始 Liferay render 方法说:

return actionMapping.findForward("portlet.journal.error");

顺便说一下,在我的 class(扩展 BaseStrutsPortletAction)中,render 方法无法访问任何 actionMapping 实例。

那么...我怎样才能在 class 中获得相同的行为?

我的代码是这样的:

    @Override
    public String render(
            StrutsPortletAction originalStrutsPortletAction,
            PortletConfig portletConfig, RenderRequest renderRequest,
            RenderResponse renderResponse)
        throws Exception {

        Boolean myCondition = .......;

        if (myCondition) {
            // WHAT SHOULD I DO HERE?
            //return actionMapping.findForward("portlet.journal.error");
        }
        return originalStrutsPortletAction.render(
            null, portletConfig, renderRequest, renderResponse);

    }

谢谢

您只需要 return 转发名称即可。

而不是 actionMapping.findForward("portlet.journal.error"),return 只是 "portlet.journal.error"

BaseStrutsPortletAction#render 方法从 com.liferay.portal.struts.PortletActionAdapter#render 调用,它使用结果调用 actionMapping.findForward(...).