Webcast portlets-jsf

353 visualizações

Publicada em

Desenvolvendo portlets utilizando jsf, facelets, ajax e richfaces

Publicada em: Tecnologia
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
353
No SlideShare
0
A partir de incorporações
0
Número de incorporações
3
Ações
Compartilhamentos
0
Downloads
4
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Webcast portlets-jsf

  1. 1. Desenvolvendo Portlets utilizando JSF, Ajax, Richfaces Gustavo Lira Consultor – 4Linux gustavo@4linux.com.br
  2. 2. Desenvolvendo Portlets utilizando JSF, Ajax, Richfaces ● O que será apresentado é uma continuação do WebCast “Escrevendo meu primeiro portlet”, cujo audio e slides podem ser baixados através do link http://www.4linux.com.br/podcasts/podcast-downloadescrevendo-meu-primeiro-portlet.html
  3. 3. JSF Portlet Bridge ● Permite usar um framework criado para um ambiente de Servlets dentro de um Container de Portlets ● JSR-301 (JSF 1.2 x Portlet 1.0) ● JSR-329 (JSF 1.2 x Portlet 2.0) ● RIs no projeto Apache MyFaces, porém compatíveis com outras implementações do JSF
  4. 4. Bridge x Servidor de Aplicação ● Os JARs do Portlet Bridge devem ser inclusos na aplicação ou copiados para o diretório de bibliotecas do servidor ● Alguns servidores já possuem as bibliotecas do JSF e do JSTL ● Cuidado com as dependências, ex: Jakarta Commons
  5. 5. Projeto JSF Tradicional x Portlets ● Arquivos JAR do Portlet Bridge ● portlet.xml referencia o GenericFacesPortlet fornecido pelo Bridge ● Configure views padrões para View (obrigatória), Edit e Help ● Você poderá continuar usando o taglib de portlets ● Algumas extensões do JSF podem não ser compatíveis com o Portlet Bridge!
  6. 6. portlet.xml <portlet> <description>Hora Mundial JSF</description> <portlet-name>hora-mundo-jsf</portlet-name> <display-name>Hora Mundial JSF</display-name> <portlet-class> javax.portlet.faces.GenericFacesPortlet</portlet-class> <init-param> <name>javax.portlet.faces.defaultViewId.view</name> <value>/view.faces</value> </init-param> <init-param> <name>javax.portlet.faces.defaultViewId.help</name> <value>/help.faces</value> </init-param> <init-param> <name>javax.portlet.faces.defaultViewId.edit</name> <value>/edit.faces</value> </init-param>
  7. 7. Como Funciona? ● O Portlet Bridge quebra o ciclo de processamento do JSF nas fases action e render do portlet ● Como o JSF sempre faz POST, todas as requisições serão actions (seguidas por renders) ● O portlet bridge não é um portlet! ● Ele é apenas um intermediador entre o JSF e o container de portlets
  8. 8. Como funciona?
  9. 9. Namespaces x JSF ● Espera-se que a implementação do JSF utilize o getPortletNamespace() sempre que necessário no código Javascript e CSS gerado pelo render kit ● Componentes extras podem não ter esta inteligência, e serem incompatíveis com o ambiente de Portlet
  10. 10. JBoss Portlet Bridge ● É uma implementação da JSR-329 que utiliza a API 2.0 de portlets e JSF, com melhorias adicionadas ao suporte a outros frameworks web (RichFaces e JBoss Seam) ● Neste momento, o JBoss Portlet Bridge é suportado apenas para o GateIn, JBoss Portal ou eXo Platform
  11. 11. Web.xml ... <servlet> <servlet-name>Faces Servlet</servlet-name> <servlet-class> javax.faces.webapp.FacesServlet </servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>Faces Servlet</servlet-name> <url-pattern>*.jsf</url-pattern> </servlet-mapping> <!-- Cria-se dependência com o facelets--> <context-param> <param-name>javax.portlet.faces.RENDER_POLICY</param-name> <param-value>ALWAYS_DELEGATE</param-value> </context-param> <!-- continua... -->
  12. 12. web.xml <!-- ...continuação --> <filter> <display-name>Ajax4jsf Filter</display-name> <filter-name>ajax4jsf</filter-name> <filter-class>org.ajax4jsf.Filter</filter-class> </filter> <filter-mapping> <filter-name>ajax4jsf</filter-name> <servlet-name>Faces Servlet</servlet-name> <dispatcher>FORWARD</dispatcher> <dispatcher>REQUEST</dispatcher> <dispatcher>INCLUDE</dispatcher> </filter-mapping> <!-- continua... -->
  13. 13. web.xml <!-- ...continuação → <!-- Pode-se usar xhtml ou jsp normalmente --> <context-param> <param-name>javax.faces.DEFAULT_SUFFIX</param-name> <param-value>.xhtml</param-value> </context-param> <!-- Pode-se usar outras configurações opcionais ---> <context-param> <param-name>org.richfaces.LoadStyleStrategy</param-name> <param-value>ALL</param-value> </context-param> </web-app>
  14. 14. faces-config.xml
  15. 15. cadastraTarefas.xhtml
  16. 16. cadastraTarefas.xhtml
  17. 17. listaTarefas.xhtml
  18. 18. listaTarefas.xhtml
  19. 19. Obrigado gustavo@4linux.com.br www.4linux.com.br twitter.com/4LinuxBR Tel: 55-11-2125-4747

×