1

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

Response.sendRedirect()

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

设置渲染参数已被调用

然后我尝试使用:

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

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

另一个问题,我假设在 Liferay 中 include 和 sendRedirect 的概念与 JSP 和 Servlet 中的概念相同吗?

我正在使用 Liferay 6。

4

2 回答 2

2

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

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

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

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

于 2012-07-20T08:29:12.107 回答
0

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

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

于 2012-04-15T10:46:25.500 回答