Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring Portlet MVC sentRedirect和setRenderParameter_Java_Jsp_Liferay_Portlet_Spring Portlet Mvc - Fatal编程技术网

Java Spring Portlet MVC sentRedirect和setRenderParameter

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

在Liferay中,我遇到了一个可能很简单的SpringPortlet重定向和jsp呈现问题

我在Liferaypage1page2中有两个页面,还有一个SpringMVCPortletportletA和两个jspdefaultView.jspsecond.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:

@RenderMapping(value = "renderSecondPage")
public String renderSecondPage() {
    return "second";
}
据我所知,我无法在sendRedirect之前或之后的操作阶段设置renderParameters

例如,这不起作用,导致java.lang.IllegalStateException:Set render参数已被调用

非常感谢你的帮助

该州:

无法在ActionResponse的以下任何方法之后调用sendRedirect方法 接口已被调用:

  • setPortletMode
  • 设置窗口状态
  • setRenderParameter
  • setRenderParameters
您需要使用另一个作用域来存储属性。

以下状态:

无法在ActionResponse的以下任何方法之后调用sendRedirect方法 接口已被调用:

  • setPortletMode
  • 设置窗口状态
  • setRenderParameter
  • setRenderParameters
您需要使用另一个作用域来存储属性。

以下状态:

无法在ActionResponse的以下任何方法之后调用sendRedirect方法 接口已被调用:

  • setPortletMode
  • 设置窗口状态
  • setRenderParameter
  • setRenderParameters
您需要使用另一个作用域来存储属性。

以下状态:

无法在ActionResponse的以下任何方法之后调用sendRedirect方法 接口已被调用:

  • setPortletMode
  • 设置窗口状态
  • setRenderParameter
  • setRenderParameters
您需要使用另一个作用域来存储属性。

一定要看看上面的链接。 这里基于动作方法呈现不同的jsp

一定要看看上面的链接。 这里基于动作方法呈现不同的jsp

一定要看看上面的链接。 这里基于动作方法呈现不同的jsp

一定要看看上面的链接。
这里基于动作方法呈现不同的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>>");