Frage

Ich bin gespannt, ob jemand weiß, ob es möglich ist, ein einzelnes Portlet mehrere Seiten zu enthalten, lassen Sie uns sagen, JSP-Seiten. Des Weiteren ist es möglich, diese verschiedenen Seiten innerhalb des gleichen Portlet zu verknüpfen?

Zum Beispiel. Lassen Sie uns sagen, dass ich ein einzelnes Portlet haben. Und in diesem Portlet mag ich die erste Ansicht eine JSP-Seite mit nur 5 Links auf sich zu 5 verschiedenen JSP-Seiten sein. Und wenn ein Benutzer auf einer dieser 5-Links geklickt hat, wäre es die entsprechende JSP-Seite in das Portlet laden.

Das Endziel im Grunde eine kleine Mini-Webseite sei, alle in einem Portlet enthalten ist.

Nun, ich verstehe, dass dies nicht die beste Verwendung eines Portlets sein könnte, aber im Interesse eines Projektes arbeite ich an, ich würde noch gerne wissen, ob es möglich ist.

Danke!

War es hilfreich?

Lösung

Sicher, ein Portlet kann mehr als eine JSP enthalten.

Sie können jede beliebige JSP angezeigt werden Sie über die PortletRequestDispatcher in der doView (oder doHelp oder doEdit) Methode:

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

Sie können eine Parameter die Ansicht einzustellen. In der JSP mit den Links, müssen Sie den Portlet-API verwenden, um die Links zu dem Portlet erstellen / kodieren. Zum Beispiel:

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

(ich habe wirklich nicht Schritt gehalten von JSR286 / Portlet 2.0 - dieses Zeug mit JSR168 / Portlet 1.0 funktionieren soll -. So lohnt es sich, die neue API zu überprüfen, ob Sie es verwenden)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top