Pregunta

Tengo curiosidad si alguien sabe si es posible que un solo portlet contenga varias páginas, digamos páginas JSP. Además, ¿es posible enlazar a estas diferentes páginas dentro del mismo portlet?

Por ejemplo. Digamos que tengo un solo portlet. Y en este portlet quiero que la vista inicial sea una página JSP con solo 5 enlaces en 5 páginas JSP diferentes. Y cuando un usuario hizo clic en uno de estos 5 enlaces, cargaría la página JSP apropiada en el portlet.

El objetivo final sería básicamente un pequeño mini sitio web contenido en un portlet.

Ahora, entiendo que este podría no ser el mejor uso de un portlet, pero por el bien de un proyecto en el que estoy trabajando, todavía me gustaría saber si es posible.

¡Gracias!

¿Fue útil?

Solución

Claro, un portlet puede contener más de un JSP.

Puede visualizar cualquier JSP que desee a través de PortletRequestDispatcher en su doView (o doHelp o doEdit ) método:

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);
}

Puede usar un parámetro para establecer la vista. En la JSP con los enlaces, deberá utilizar la API de portlet para crear / codificar los enlaces al portlet. Por ejemplo:

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

(Realmente no me he mantenido al tanto de JSR286 / Portlet 2.0 - estas cosas deberían funcionar con JSR168 / Portlet 1.0 - por lo que vale la pena revisar la nueva API si la estás usando).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top