我正在使用Liferay和Spring MVC,并且我想重定向到另一个portlet并传递参数,但是当我尝试设置渲染参数时,我会收到以下错误:
15:20:24,859 ERROR [portal-web.docroot.html.portal.render_portlet_jsp] (http-foo-10.23.243.3-8080-7) java.lang.IllegalStateException: 已经调用了“Set render parameter”
at com.liferay.portlet.ActionResponseImpl.sendRedirect(ActionResponseImpl.java:48) at sk.foo.showcasePortlet.ShowcaseController.redirect(ShowcaseController.java:65)
showcaseController的方法仅包含赋值和重定向操作:
@ActionMapping(params = { "action=redirect" })
public void redirect(ActionRequest request, ActionResponse response)
throws IOException {
response.setRenderParameter("path", request.getParameter("path"));
response.sendRedirect("/path/to/portlet");
}
为什么我不能分配那个参数?当我删除该行时,重定向可以正常工作,但问题在于用户被重定向到的门户期望一个名为“path”的字符串参数。
@RenderMapping
public String barBaz(RenderRequest request, @RequestParam String path){
// ...
return "some/jsp";
}
请问如何将参数传递到另一个portlet中的barBaz
方法?