我很好奇是否有人知道单个 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(使用前将#替换为@)