Question

Je suis curieux de savoir si quelqu'un sait s'il est possible qu'un même portlet contienne plusieurs pages, par exemple des pages JSP. De plus, est-il possible de créer des liens vers ces différentes pages dans le même portlet?

Par exemple. Disons que j'ai un seul portlet. Et dans ce portlet, je souhaite que la vue initiale soit une page JSP avec seulement 5 liens vers 5 pages JSP différentes. Et lorsqu'un utilisateur clique sur l'un de ces 5 liens, il charge la page JSP appropriée dans le portlet.

L'objectif final serait essentiellement un petit mini site Web, contenu dans un portlet.

Maintenant, je comprends que ce n'est peut-être pas la meilleure utilisation d'un portlet, mais dans l'intérêt d'un projet sur lequel je travaille, j'aimerais quand même savoir si c'est possible.

Merci!

Était-ce utile?

La solution

Bien sûr, un portlet peut contenir plusieurs JSP.

Vous pouvez afficher le JSP de votre choix via le PortletRequestDispatcher dans votre doView (ou doHelp ou 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);
}

Vous pouvez utiliser un paramètre. pour définir la vue. Dans la JSP avec les liens, vous devez utiliser l'API de portlet pour créer / encoder les liens vers le portlet. Par exemple:

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

(Je ne me suis pas vraiment tenu au courant de JSR286 / Portlet 2.0 - cela devrait fonctionner avec JSR168 / Portlet 1.0 - il est donc utile de vérifier la nouvelle API si vous l'utilisez.)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top