我按照官方文档创建了Liferay 6.2钩子,一切正常。
现在我需要它,在渲染阶段和几个条件下,我的用户将重定向到特定的磁贴。
原始Liferay render
方法说:
return actionMapping.findForward("portlet.journal.error");
在我的课程中(扩展BaseStrutsPortletAction
),render
方法无法访问任何actionMapping
个实例。
那么......我怎样才能在班上获得相同的行为?
我的代码说:
@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);
}
谢谢
答案 0 :(得分:1)
您只需要返回正向名称即可。
而不是actionMapping.findForward("portlet.journal.error")
,只返回"portlet.journal.error"
。
com.liferay.portal.struts.PortletActionAdapter#render
调用 BaseStrutsPortletAction#render
方法,该方法使用结果调用actionMapping.findForward(...)
。