我试图覆盖“/blog/view_entry”struts路径。以下是救生筏-hook.xml中的条目
<struts-action>
<struts-action-path>/blogs/view_entry</struts-action-path>
<struts-action-impl>com.smb.hook.action.BlogCustomEditAction</struts-action-impl>
</struts-action>每当我单击博客portlet中的任何博客条目时,它都会重定向到
计数%3D2
而博客portlet变得不可见。
在控制台,我可以看到在render方法中添加的test print语句。在此之后,将记录下列错误消息:
ERROR [RuntimePageImpl-22][PortletRequestProcessor:466] Forward does not exist以下是重写的方法:
@Override
public void processAction(StrutsPortletAction originalStrutsPortletAction,
PortletConfig portletConfig, ActionRequest actionRequest,
ActionResponse actionResponse) throws Exception {
System.out.println("processAction :");
super.processAction(originalStrutsPortletAction, portletConfig, actionRequest,
actionResponse);
}
@Override
public String render(StrutsPortletAction originalStrutsPortletAction,
PortletConfig portletConfig, RenderRequest renderRequest,
RenderResponse renderResponse) throws Exception {
System.out.println("render :");
return super.render(originalStrutsPortletAction, portletConfig, renderRequest,
renderResponse);
}
@Override
public void serveResource(StrutsPortletAction originalStrutsPortletAction,
PortletConfig portletConfig, ResourceRequest resourceRequest,
ResourceResponse resourceResponse) throws Exception {
System.out.println("serveResource :");
super.serveResource(originalStrutsPortletAction, portletConfig,
resourceRequest, resourceResponse);
}我尝试为originalStrutsPortletAction传递null,如救生筏开发场地上的一个示例所示,但是输出没有变化。
在这方面的任何帮助都将不胜感激。
发布于 2015-08-31 13:39:55
我猜您扩展了BaseStrutsPortletAction (没有在代码片段中说明)。
BaseStrutsPortletAction的默认方法不委托给originalStrutsPortletAction,但是它们委托给没有originalStrutsPortletAction的类的方法,默认情况下这些方法是空的。
所以你必须自己打电话给originalStrutsPortletAction:
@Override
public void processAction(StrutsPortletAction originalStrutsPortletAction,
PortletConfig portletConfig, ActionRequest actionRequest,
ActionResponse actionResponse) throws Exception {
originalStrutsPortletAction.processAction(portletConfig, actionRequest, actionResponse);
}
@Override
public String render(StrutsPortletAction originalStrutsPortletAction,
PortletConfig portletConfig, RenderRequest renderRequest,
RenderResponse renderResponse) throws Exception {
return originalStrutsPortletAction.render(portletConfig, renderRequest, renderResponse);
}
@Override
public void serveResource(StrutsPortletAction originalStrutsPortletAction,
PortletConfig portletConfig, ResourceRequest resourceRequest,
ResourceResponse resourceResponse) throws Exception {
originalStrutsPortletAction.serveResource(portletConfig, resourceRequest, resourceResponse);
}https://stackoverflow.com/questions/32310011
复制相似问题