编程语言
首页 > 编程语言> > java-一个Portlet中有多个页面

java-一个Portlet中有多个页面

作者:互联网

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

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

最终目标基本上是将一个微型网站全部包含在portlet中.

现在,我知道这可能不是Portlet的最佳用法,但是出于我正在从事的项目的考虑,我仍然想知道是否有可能.

谢谢!

解决方法:

当然,一个Portlet可以包含多个JSP.

您可以通过doView(或doHelp或doEdit)方法中的PortletRequestDispatcher显示任何所需的JSP:

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.)

标签:portlet,java,jsp
来源: https://codeday.me/bug/20191107/2002901.html