【问题标题】:Liferay 6: Unable to redirect to JSP from MVCPortletLiferay 6:无法从 MVCPortlet 重定向到 JSP
【发布时间】:2012-07-20 16:29:12
【问题描述】:

根据我想从 MVCPortlet 类重定向到 JSP 页面的条件,在 liferay-portlet.xml 中将 action-url-redirect 设置为 true 后,我尝试了操作

Response.sendRedirect()

我在服务器控制台中收到此错误:

设置渲染参数已经被调用

然后我尝试使用:

include("/html/satportlet/view2.jsp", request, response);

没有抛出异常,但在这种情况下仍然没有发生任何事情,我不知道为什么。

另一个问题,我是否正确地假设在 Liferay 中 include 和 sendRedirect 的概念与 JSP 和 Servlets 中的概念相同?

我正在使用 Liferay 6。

【问题讨论】:

    标签: liferay liferay-6


    【解决方案1】:

    不需要重定向,在动作方法的末尾添加以下内容:

    response.setRenderParameter("jspPage", "/url/to/your/jsp");

    这将导致页面"/url/to/your/jsp" 呈现为对操作的响应。

    事实上,我唯一需要覆盖doView的时候是当我想要在入口点视图jsp显示之前进行自定义处理(以避免在jsp本身中编写代码,因为Liferay只有一个jsp-page/ view-template 作为初始化参数而不是控制器操作)。

    【讨论】:

      【解决方案2】:

      portlet API 区分操作阶段和呈现阶段:在操作阶段(例如,当您有可用的 ActionRequest/ActionResponse 时)您不应该考虑 HTML 输出。

      在渲染过程中,您决定要显示什么 - 因此您只需在操作处理期间记住一个属性或渲染参数。渲染时,您将重定向到/包含目标 JSP。

      【讨论】:

      • 感谢 Olaf Kock,但我读到的是,使用 MVCPortlet 时不需要覆盖 doView 方法,因为这是使用 MVCPortlet 的优势之一,如果我是,请告诉我错误的 。提前致谢。
      猜你喜欢
      • 2016-09-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多