2009-09-10 62 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