• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Webcast portlets-jsf
 

Webcast portlets-jsf

on

  • 150 views

Desenvolvendo portlets utilizando jsf, facelets, ajax e richfaces

Desenvolvendo portlets utilizando jsf, facelets, ajax e richfaces

Statistics

Views

Total Views
150
Views on SlideShare
150
Embed Views
0

Actions

Likes
0
Downloads
0
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Webcast portlets-jsf Webcast portlets-jsf Presentation Transcript

    • Desenvolvendo Portlets utilizando JSF, Ajax, Richfaces Gustavo Lira Consultor – 4Linux gustavo@4linux.com.br
    • 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
    • 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
    • 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
    • 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!
    • 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>
    • 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
    • Como funciona?
    • 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
    • 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
    • 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... -->
    • 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... -->
    • 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>
    • faces-config.xml
    • cadastraTarefas.xhtml
    • cadastraTarefas.xhtml
    • listaTarefas.xhtml
    • listaTarefas.xhtml
    • Obrigado gustavo@4linux.com.br www.4linux.com.br twitter.com/4LinuxBR Tel: 55-11-2125-4747