Já vimos que portlets são na verdade aplicações web que podem ser reutilizadas, vamos ver nesse post como criar essas aplicações web. Para quem usa o Eclipse para criação e publicação de aplicações no JBoss está em casa. Vamos precisar:
- Eclipse JEE
- GateIn 3 Beta5 para JBoss
Primeiramente vamos criar uma Dynamic Web Project comun no Eclipse e crie um novo Target Runtime.
Selecione JBoss 5.0 e peça para criar um server, aponte esse servidor para o local de instalação do GateIn:
Agora que temos nosso projeto criado, vamos precisar adicionar as bibliotecas do GateIn localizadas em <JBOSS_HOME>/server/default/deploy/gatein.ear/lib ao Build Path:
Portlets são muito similares a servlets: assim como estendemos a classe HttpServert para criar servlets, estendemos a classe GenericPortlet para gerar portlets. Crie a seguinte classe:
public class VaiPlanetaPortlet extends GenericPortlet { @Override protected void doView(RenderRequest request, RenderResponse response) throws PortletException, IOException { response.getWriter().print("Vai Planeta!!"); } }
Note os parâmetros request e response e o print(), não lembra servlets? Agora só falta declarar esse nosso portlet! De novo fazendo uma analogia a servlets: do mesmo modo que servlets são declarados no web.xml, portlets são declarados no portlet.xml. Crie então um arquivo portlets.xml no WEB-INF com o seguinte conteúdo:
<?xml version="1.0" encoding="UTF-8"?> <portlet-app xmlns="http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd" version="2.0"> <portlet> <portlet-name>VaiPlanetaPortlet</portlet-name> <portlet-class>net.rafaelliu.VaiPlanetaPortlet</portlet-class> <supports> <mime-type>text/html</mime-type> </supports> <portlet-info> <title>Portlet Vai Planeta</title> </portlet-info> </portlet> </portlet-app>
Pronto, já temos nosso portlet. Faça deploy dele como faria com uma aplicação web comun e importe o portlet no GateIn.




Vai planeta foi a melhor parte!!
Hahahhahaahhaha
acho que é portlet.xml (singular)
É sim, Outro Thiago. Obrigado!
Já editei o post.
Todas fezes que acessamos um menu no Gatein ele mantém o estado anteriores dos componentes do JSF, gostaria que todas as vezes em que clicasse no menu ele reiniciasse a árvore de componentes do meu portlet. Tem jeito?