3

我很好奇是否有人知道单个portlet 是否可以包含多个页面,比如说JSP 页面。此外,是否可以在同一个 portlet 中链接到这些不同的页面?

例如。假设我有一个 portlet。在这个 portlet 中,我希望初始视图是一个 JSP 页面,上面只有 5 个链接到 5 个不同的 JSP 页面。当用户单击这 5 个链接之一时,它会将适当的 JSP 页面加载到 portlet 中。

最终目标基本上是一个小型迷你网站,全部包含在一个 portlet 中。

现在,我知道这可能不是 portlet 的最佳用途,但为了我正在从事的项目,我仍然想知道它是否可能。

谢谢!

4

1 回答 1

4

当然,一个portlet 可以包含多个JSP。

您可以通过您的doView(或或)方法中的PortletRequestDispatcher显示您想要的任何 JSP :doHelpdoEdit

protected void doView(RenderRequest req, RenderResponse resp)
       throws PortletException, IOException, UnavailableException {
   resp.setContentType("text/html"); 
   String myview = req.getParameter("myview");
   String view = "/WEB-INF/jsp/" + (myview==null ? "bar" : myview) + ".jsp";
   PortletRequestDispatcher dispatcher = 
                                 getPortletContext().getRequestDispatcher(view);
   dispatcher.include(req, resp);
}

您可以使用参数来设置视图。在带有链接的 JSP 中,您需要使用 Portlet API 来创建/编码到 Portlet 的链接。例如:

<portlet:renderURL>
  <portlet:param name="myview" value="foo"/>
</portlet:renderURL>

(我并没有真正了解 JSR286/Portlet 2.0 - 这些东西应该可以与 JSR168/Portlet 1.0 一起使用 - 因此,如果您正在使用新的 API,那么值得检查它。)

于 2009-09-10T21:53:03.190 回答