Pergunta

Estou curioso se alguém sabe se é possível para um único portlet para conter várias páginas, digamos páginas JSP. Além disso é possível link para essas páginas diferentes dentro do mesmo portlet?

Por exemplo. Digamos que eu tenho um único portlet. E neste portlet eu quero a exibição inicial de ser uma página JSP com apenas 5 links sobre ele a 5 páginas JSP diferentes. E quando um usuário clicou em um desses 5 links, seria carregar a página JSP apropriada para o portlet.

O objetivo final seria basicamente um pouco de mini-site todos contidos dentro de um portlet.

Agora, eu entendo que isso pode não ser o melhor uso de um portlet, mas por causa de um projeto que estou trabalhando, eu ainda gostaria de saber se é possível.

Obrigado!

Foi útil?

Solução

Claro, um portlet pode conter mais de uma JSP.

Você pode exibir qualquer JSP que você quer através da PortletRequestDispatcher em sua doView (ou doHelp ou 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);
}

Você pode usar um parâmetro para definir o ponto de vista. No JSP com os links, você precisa usar o Portlet API para criar / codificar os links para o Portlet. Por exemplo:

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

(Eu realmente não tenho mantido a par de JSR286 / Portlet 2.0 - essas coisas deve trabalhar com JSR168 / Portlet 1.0 -. Por isso vale a pena conferir a nova API se você estiver usando-o)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top