一个 Portlet 内的多个页面

2024-03-14

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

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

最终目标基本上是一个全部包含在 portlet 内的小型网站。

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

Thanks!


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

您可以通过以下方式显示任何您想要的 JSPPortlet 请求调度程序 http://portals.apache.org/pluto/portlet-1.0-apidocs/javax/portlet/PortletRequestDispatcher.html在你的doView http://portals.apache.org/pluto/portlet-1.0-apidocs/javax/portlet/GenericPortlet.html#doView(javax.portlet.RenderRequest,%20javax.portlet.RenderResponse) (or doHelp or 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);
}

你可以使用范围 http://portals.apache.org/pluto/portlet-1.0-apidocs/javax/portlet/PortletRequest.html#getParameterMap()设置视图。在带有链接的 JSP 中,您需要使用 Portlet API 来创建/编码到 Portlet 的链接。例如:

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

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

一个 Portlet 内的多个页面 的相关文章

随机推荐