我很好奇是否有人知道单个portlet是否可以包含多个页面,比如说JSP页面。此外,是否可以链接到同一portlet中的这些不同页面?
例如。假设我有一个portlet。在这个portlet中,我希望初始视图是一个JSP页面,上面只有5个链接,可以链接到5个不同的JSP页面。并且,当用户单击这5个链接之一时,会将相应的JSP页面加载到portlet中。
最终目标基本上是将一个微型网站全部包含在portlet中。
现在,我知道这可能不是Portlet的最佳用法,但是出于我正在从事的项目的考虑,我仍然想知道是否有可能。
谢谢!
当然,一个Portlet可以包含多个JSP。
您可以显示任何JSP你通过想要一个PortletRequestDispatcher在你的doView(或doHelp或doEdit)方法:
doHelp
doEdit
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。)