Java Spring Portlet MVC sentRedirect和setRenderParameter
在Liferay中,我遇到了一个可能很简单的SpringPortlet重定向和jsp呈现问题 我在Liferaypage1和page2中有两个页面,还有一个SpringMVCPortletportletA和两个jspdefaultView.jsp和second.jsp page1和page2都实例化了portletA portletA默认情况下通过调用@RenderMapping()方法加载defaultView.jsp DefaultViewController: 从defaultView.jsp可以通过http重定向(@ActionMapping resp.sendRedirect())调用liferay page2 defaultView.jsp: 现在我想知道 在从第1页重定向后,我如何告诉portletA在第2页调用不同的@RenderMapping方法 我希望portletA在第2页呈现second.jsp:Java Spring Portlet MVC sentRedirect和setRenderParameter,java,jsp,liferay,portlet,spring-portlet-mvc,Java,Jsp,Liferay,Portlet,Spring Portlet Mvc,在Liferay中,我遇到了一个可能很简单的SpringPortlet重定向和jsp呈现问题 我在Liferaypage1和page2中有两个页面,还有一个SpringMVCPortletportletA和两个jspdefaultView.jsp和second.jsp page1和page2都实例化了portletA portletA默认情况下通过调用@RenderMapping()方法加载defaultView.jsp DefaultViewController: 从defaultView.j
@RenderMapping(value = "renderSecondPage")
public String renderSecondPage() {
return "second";
}
据我所知,我无法在sendRedirect之前或之后的操作阶段设置renderParameters
例如,这不起作用,导致java.lang.IllegalStateException:Set render参数已被调用
非常感谢你的帮助 该州:
无法在ActionResponse的以下任何方法之后调用sendRedirect方法
接口已被调用:
- setPortletMode
- 设置窗口状态
- setRenderParameter
- setRenderParameters
- setPortletMode
- 设置窗口状态
- setRenderParameter
- setRenderParameters
- setPortletMode
- 设置窗口状态
- setRenderParameter
- setRenderParameters
- setPortletMode
- 设置窗口状态
- setRenderParameter
- setRenderParameters
这里基于动作方法呈现不同的jsp 您需要在第二页准备portlet的url。在liferay中,创建放置在其他liferay页面上的portlet的呈现URL是可能的
PortletURL renderUrl = PortletURLFactoryUtil.create(request, <<Portlet Id on aonther page>>, <<LayoutId of another page>>,PortletRequest.RENDER_PHASE);
renderUrl.setWindowState(LiferayWindowState.NORMAL);
renderUrl.setPortletMode(LiferayPortletMode.VIEW);
renderUrl.setParameter("action", "<<name of action attribute set for render method>>");
PortletURL renderUrl=PortletURLFactoryUtil.create(请求,PortletRequest.RENDER_阶段);
renderUrl.SetWindowsState(LiferayWindowsState.NORMAL);
renderUrl.setPortletMode(LiferayPortletMode.VIEW);
setParameter(“action”和“”);
说明:-
- PortletURLFactoryUtil用于创建portlet URL。我们必须传递请求(portletRequest)、放置在另一个页面上的portletId、另一个页面的布局Id和阶段(当前呈现,因为我们要调用它的呈现方法)
在SpringMVCPortlet中,可以有多个呈现方法。默认呈现方法将不具有任何操作属性,而所有其他方法都具有此属性。您需要在第二页上准备portlet的url。在liferay中,创建放置在其他liferay页面上的portlet的呈现URL是可能的
PortletURL renderUrl = PortletURLFactoryUtil.create(request, <<Portlet Id on aonther page>>, <<LayoutId of another page>>,PortletRequest.RENDER_PHASE);
renderUrl.setWindowState(LiferayWindowState.NORMAL);
renderUrl.setPortletMode(LiferayPortletMode.VIEW);
renderUrl.setParameter("action", "<<name of action attribute set for render method>>");
PortletURL renderUrl=PortletURLFactoryUtil.create(请求,PortletRequest.RENDER_阶段);
renderUrl.SetWindowsState(LiferayWindowsState.NORMAL);
renderUrl.setPortletMode(LiferayPortletMode.VIEW);
setParameter(“action”和“”);
说明:-
- PortletURLFactoryUtil用于创建portlet URL。我们必须传递请求(portletRequest)、放置在另一个页面上的portletId、另一个页面的布局Id和阶段(当前呈现,因为我们要调用它的呈现方法)
在SpringMVCPortlet中,可以有多个呈现方法。默认呈现方法将不具有任何操作属性,而所有其他方法都具有此属性。您需要在第二页上准备portlet的url。在liferay中,创建放置在其他liferay页面上的portlet的呈现URL是可能的
PortletURL renderUrl = PortletURLFactoryUtil.create(request, <<Portlet Id on aonther page>>, <<LayoutId of another page>>,PortletRequest.RENDER_PHASE);
renderUrl.setWindowState(LiferayWindowState.NORMAL);
renderUrl.setPortletMode(LiferayPortletMode.VIEW);
renderUrl.setParameter("action", "<<name of action attribute set for render method>>");
PortletURL renderUrl=PortletURLFactoryUtil.create(请求,PortletRequest.RENDER_阶段);
renderUrl.SetWindowsState(LiferayWindowsState.NORMAL);
renderUrl.setPortletMode(LiferayPortletMode.VIEW);
setParameter(“action”和“”);
说明:-
- PortletURLFactoryUtil用于创建portlet URL。我们必须传递请求(portletRequest)、放置在另一个页面上的portletId、另一个页面的布局Id和阶段(当前呈现,因为我们要调用它的呈现方法)
在SpringMVCPortlet中,可以有多个呈现方法。默认呈现方法将不具有任何操作属性,而所有其他方法都具有此属性。您需要在第二页上准备portlet的url。在liferay中,创建放置在其他liferay页面上的portlet的呈现URL是可能的
PortletURL renderUrl = PortletURLFactoryUtil.create(request, <<Portlet Id on aonther page>>, <<LayoutId of another page>>,PortletRequest.RENDER_PHASE);
renderUrl.setWindowState(LiferayWindowState.NORMAL);
renderUrl.setPortletMode(LiferayPortletMode.VIEW);
renderUrl.setParameter("action", "<<name of action attribute set for render method>>");
PortletURL renderUrl=PortletURLFactoryUtil.create(请求,PortletRequest.RENDER_阶段);
renderUrl.SetWindowsState(LiferayWindowsState.NORMAL);
renderUrl.setPortletMode(LiferayPortletMode.VIEW);
setParameter(“action”和“”);
说明:-
- PortletURLFactoryUtil用于
PortletURL renderUrl = PortletURLFactoryUtil.create(request, <<Portlet Id on aonther page>>, <<LayoutId of another page>>,PortletRequest.RENDER_PHASE); renderUrl.setWindowState(LiferayWindowState.NORMAL); renderUrl.setPortletMode(LiferayPortletMode.VIEW); renderUrl.setParameter("action", "<<name of action attribute set for render method>>");