一个Portlet内的多个页面

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

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

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

现在,我明白这可能不是portlet的最佳用法,但是为了我正在开发的项目,我仍然想知道它是否可行。

谢谢!

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

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

 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的链接。 例如:

    

(我还没有真正了解JSR286 / Portlet 2.0 – 这些东西应该与JSR168 / Portlet 1.0一起使用 – 所以如果你正在使用它,那么值得检查一下新的API。)