我有一个uPortal JSR-268 Spring MVC portlet,它有一个欢迎页面。着陆页上的所有链接都以最大化模式呈现下一页,所有内部链接都是如此。
我想要做的是,如果用户在任何其他页面上,则呈现欢迎页面,并将WindowState从最大化更改。这仅适用于RenderRequests,我不关心此处的任何其他类型的请求。
用户可以使用“返回仪表板”链接通过用户界面更改WindowState,方法是单击门户上的窗口按钮,或者,如果他们知道他们在做什么,则通过操作URL。
我可以通过检查请求参数来识别欢迎页面的请求。
我试过了
将WindowState设置回最大化时,重定向到最初请求的页面也是可以接受的。 Portlet似乎不支持重定向。
如果我正在处理ActionRequests,我可以在拦截器的ActionResponse上设置一个RenderParameter,这会导致欢迎页面被渲染。但是,似乎没有RenderRequests的等效项。我错过了什么吗?
答案 0 :(得分:0)
我最终使用了javax.portlet.filter.RenderFilter。方法签名如下所示
public void doFilter(RenderRequest request, RenderResponse response,
FilterChain chain) throws IOException, PortletException
这使我可以开始访问renderRequest。下一个问题是您无法在RenderRequest中设置参数。
我通过扩展RenderRequest并覆盖getParameter来解决这个问题,因此它会返回正确的参数来将请求路由到正确的控制器。这允许我用包装的请求调用链中的下一个链接。
有点乱,但至少可以起作用。