2009-09-10 35 views
3

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

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

最终目标基本上是一个小型网站,它们都包含在一个portlet中。

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

谢谢!

回答

4

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

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

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); 
} 

你可以使用一个parameter设置视图。在带有链接的JSP中,您需要使用Portlet API来创建/编码指向Portlet的链接。例如:

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

(我还没有真正跟上JSR286/Portlet的2.0的 - 这个东西应该与JSR168/Portlet的1.0工作 - 所以它是值得如果你使用它检查新的API。 )

+0

正是我在找的东西。谢谢! – 2009-09-11 15:46:35

+1

+1 JSR-286也很好。 – wmorrison365 2011-10-18 13:35:04