SlideShare uma empresa Scribd logo
1 de 19
Baixar para ler offline
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

Mais conteúdo relacionado

Mais procurados

TDC2018SP | Trilha Kotlin - Uma visao geral sobre Kotlin multiplataforma
TDC2018SP | Trilha Kotlin - Uma visao geral sobre Kotlin multiplataformaTDC2018SP | Trilha Kotlin - Uma visao geral sobre Kotlin multiplataforma
TDC2018SP | Trilha Kotlin - Uma visao geral sobre Kotlin multiplataformatdc-globalcode
 
Symfony Flex @ 2º Meetup PHPVale
Symfony Flex @ 2º Meetup PHPValeSymfony Flex @ 2º Meetup PHPVale
Symfony Flex @ 2º Meetup PHPValeGabriel Machado
 
Docker + Bancos de Dados: descomplicando a montagem de ambientes de Desenvolv...
Docker + Bancos de Dados: descomplicando a montagem de ambientes de Desenvolv...Docker + Bancos de Dados: descomplicando a montagem de ambientes de Desenvolv...
Docker + Bancos de Dados: descomplicando a montagem de ambientes de Desenvolv...Renato Groff
 
Criando microsserviços em PHP
Criando microsserviços em PHPCriando microsserviços em PHP
Criando microsserviços em PHPFlávio Lisboa
 
Desenvolvimento web no Linux
Desenvolvimento web no LinuxDesenvolvimento web no Linux
Desenvolvimento web no LinuxEduardo Rozario
 
Introdução ao Asp.NET MVC
Introdução ao Asp.NET MVCIntrodução ao Asp.NET MVC
Introdução ao Asp.NET MVCBenicio Ávila
 
Python Brasil[9] - Entrega Contínua
Python Brasil[9] - Entrega Contínua Python Brasil[9] - Entrega Contínua
Python Brasil[9] - Entrega Contínua Renzo Nuccitelli
 
Criando Pacotes Rpm Para O Fedora
Criando Pacotes Rpm Para O FedoraCriando Pacotes Rpm Para O Fedora
Criando Pacotes Rpm Para O FedoraAllisson Azevedo
 
O que esperar do framework Laminas
O que esperar do framework LaminasO que esperar do framework Laminas
O que esperar do framework LaminasFlávio Lisboa
 
Vraptor Overview
Vraptor OverviewVraptor Overview
Vraptor Overviewdtelaroli
 
Drupal Camp Campinas 2016 - Composer 101 e sua integração com drupal 8
Drupal Camp Campinas 2016 - Composer 101 e sua integração com drupal 8Drupal Camp Campinas 2016 - Composer 101 e sua integração com drupal 8
Drupal Camp Campinas 2016 - Composer 101 e sua integração com drupal 8Natan Moraes
 
Performance do ASP.NET Core, um comparativo com Node.js
Performance do ASP.NET Core, um comparativo com Node.jsPerformance do ASP.NET Core, um comparativo com Node.js
Performance do ASP.NET Core, um comparativo com Node.jsWaldyr Felix
 
TDC2016SP - Flask para Web
TDC2016SP - Flask para WebTDC2016SP - Flask para Web
TDC2016SP - Flask para Webtdc-globalcode
 
ASP.NET Core 2.0 - NESS - Outubro/2017
ASP.NET Core 2.0 - NESS - Outubro/2017ASP.NET Core 2.0 - NESS - Outubro/2017
ASP.NET Core 2.0 - NESS - Outubro/2017Renato Groff
 
Conhecendo o Zend Framework
Conhecendo o Zend FrameworkConhecendo o Zend Framework
Conhecendo o Zend FrameworkJaime Neto
 
Implementando APIs multiplataforma com ASP.NET Core 2.0 - Developers-SP - Out...
Implementando APIs multiplataforma com ASP.NET Core 2.0 - Developers-SP - Out...Implementando APIs multiplataforma com ASP.NET Core 2.0 - Developers-SP - Out...
Implementando APIs multiplataforma com ASP.NET Core 2.0 - Developers-SP - Out...Renato Groff
 
Desenvolvimento de APIs REST Multiplataforma com ASP.NET Core - Setembro-2019
Desenvolvimento de APIs REST Multiplataforma com ASP.NET Core - Setembro-2019Desenvolvimento de APIs REST Multiplataforma com ASP.NET Core - Setembro-2019
Desenvolvimento de APIs REST Multiplataforma com ASP.NET Core - Setembro-2019Renato Groff
 

Mais procurados (20)

TDC2018SP | Trilha Kotlin - Uma visao geral sobre Kotlin multiplataforma
TDC2018SP | Trilha Kotlin - Uma visao geral sobre Kotlin multiplataformaTDC2018SP | Trilha Kotlin - Uma visao geral sobre Kotlin multiplataforma
TDC2018SP | Trilha Kotlin - Uma visao geral sobre Kotlin multiplataforma
 
Symfony Flex @ 2º Meetup PHPVale
Symfony Flex @ 2º Meetup PHPValeSymfony Flex @ 2º Meetup PHPVale
Symfony Flex @ 2º Meetup PHPVale
 
Vraptor 3
Vraptor 3Vraptor 3
Vraptor 3
 
I educar-manual-de-instalaao
I educar-manual-de-instalaaoI educar-manual-de-instalaao
I educar-manual-de-instalaao
 
Introdução ao Nodejs
Introdução ao NodejsIntrodução ao Nodejs
Introdução ao Nodejs
 
Docker + Bancos de Dados: descomplicando a montagem de ambientes de Desenvolv...
Docker + Bancos de Dados: descomplicando a montagem de ambientes de Desenvolv...Docker + Bancos de Dados: descomplicando a montagem de ambientes de Desenvolv...
Docker + Bancos de Dados: descomplicando a montagem de ambientes de Desenvolv...
 
Criando microsserviços em PHP
Criando microsserviços em PHPCriando microsserviços em PHP
Criando microsserviços em PHP
 
Desenvolvimento web no Linux
Desenvolvimento web no LinuxDesenvolvimento web no Linux
Desenvolvimento web no Linux
 
Introdução ao Asp.NET MVC
Introdução ao Asp.NET MVCIntrodução ao Asp.NET MVC
Introdução ao Asp.NET MVC
 
Python Brasil[9] - Entrega Contínua
Python Brasil[9] - Entrega Contínua Python Brasil[9] - Entrega Contínua
Python Brasil[9] - Entrega Contínua
 
Criando Pacotes Rpm Para O Fedora
Criando Pacotes Rpm Para O FedoraCriando Pacotes Rpm Para O Fedora
Criando Pacotes Rpm Para O Fedora
 
O que esperar do framework Laminas
O que esperar do framework LaminasO que esperar do framework Laminas
O que esperar do framework Laminas
 
Vraptor Overview
Vraptor OverviewVraptor Overview
Vraptor Overview
 
Drupal Camp Campinas 2016 - Composer 101 e sua integração com drupal 8
Drupal Camp Campinas 2016 - Composer 101 e sua integração com drupal 8Drupal Camp Campinas 2016 - Composer 101 e sua integração com drupal 8
Drupal Camp Campinas 2016 - Composer 101 e sua integração com drupal 8
 
Performance do ASP.NET Core, um comparativo com Node.js
Performance do ASP.NET Core, um comparativo com Node.jsPerformance do ASP.NET Core, um comparativo com Node.js
Performance do ASP.NET Core, um comparativo com Node.js
 
TDC2016SP - Flask para Web
TDC2016SP - Flask para WebTDC2016SP - Flask para Web
TDC2016SP - Flask para Web
 
ASP.NET Core 2.0 - NESS - Outubro/2017
ASP.NET Core 2.0 - NESS - Outubro/2017ASP.NET Core 2.0 - NESS - Outubro/2017
ASP.NET Core 2.0 - NESS - Outubro/2017
 
Conhecendo o Zend Framework
Conhecendo o Zend FrameworkConhecendo o Zend Framework
Conhecendo o Zend Framework
 
Implementando APIs multiplataforma com ASP.NET Core 2.0 - Developers-SP - Out...
Implementando APIs multiplataforma com ASP.NET Core 2.0 - Developers-SP - Out...Implementando APIs multiplataforma com ASP.NET Core 2.0 - Developers-SP - Out...
Implementando APIs multiplataforma com ASP.NET Core 2.0 - Developers-SP - Out...
 
Desenvolvimento de APIs REST Multiplataforma com ASP.NET Core - Setembro-2019
Desenvolvimento de APIs REST Multiplataforma com ASP.NET Core - Setembro-2019Desenvolvimento de APIs REST Multiplataforma com ASP.NET Core - Setembro-2019
Desenvolvimento de APIs REST Multiplataforma com ASP.NET Core - Setembro-2019
 

Destaque

Destaque (8)

Regimento interno cme
Regimento interno   cmeRegimento interno   cme
Regimento interno cme
 
Preços de commodities e nível de atividade em uma pequena economia aberta: ev...
Preços de commodities e nível de atividade em uma pequena economia aberta: ev...Preços de commodities e nível de atividade em uma pequena economia aberta: ev...
Preços de commodities e nível de atividade em uma pequena economia aberta: ev...
 
El adjetivo
El adjetivoEl adjetivo
El adjetivo
 
O CÃO ARGUMENTO PARA FILME DE MARCO AURELIO SANTOS ROTEIRISTA
O CÃO ARGUMENTO PARA FILME DE MARCO AURELIO SANTOS ROTEIRISTAO CÃO ARGUMENTO PARA FILME DE MARCO AURELIO SANTOS ROTEIRISTA
O CÃO ARGUMENTO PARA FILME DE MARCO AURELIO SANTOS ROTEIRISTA
 
Workshop 3 3
Workshop 3 3Workshop 3 3
Workshop 3 3
 
O Spring está morto! Viva o Spring!
O Spring está morto! Viva o Spring!O Spring está morto! Viva o Spring!
O Spring está morto! Viva o Spring!
 
Tipos de indústrias 2
Tipos de indústrias 2Tipos de indústrias 2
Tipos de indústrias 2
 
Leis Universais
Leis UniversaisLeis Universais
Leis Universais
 

Semelhante a Webcast portlets-jsf

JBoss Portlet Bridge
JBoss Portlet BridgeJBoss Portlet Bridge
JBoss Portlet Bridgerafaelliu
 
JSF e outras tecnologias Java Web - IMES.java
JSF e outras tecnologias Java Web - IMES.javaJSF e outras tecnologias Java Web - IMES.java
JSF e outras tecnologias Java Web - IMES.javaEduardo Bregaida
 
Desenvolvimento web em java com JSP e Servlets
Desenvolvimento web em java com JSP e ServletsDesenvolvimento web em java com JSP e Servlets
Desenvolvimento web em java com JSP e ServletsIgo Coelho
 
Construindo portlets para IBM WebSphere Portal – Parte 1
Construindo portlets para IBM WebSphere Portal – Parte 1Construindo portlets para IBM WebSphere Portal – Parte 1
Construindo portlets para IBM WebSphere Portal – Parte 1rodrigoareis
 
Sistema S2DG e Tecnologias Web
Sistema S2DG e Tecnologias WebSistema S2DG e Tecnologias Web
Sistema S2DG e Tecnologias WebElenilson Vieira
 
JBoss Fuse Service Works - O Fuse além da integração - PT-BR
JBoss Fuse Service Works - O Fuse além da integração - PT-BRJBoss Fuse Service Works - O Fuse além da integração - PT-BR
JBoss Fuse Service Works - O Fuse além da integração - PT-BRElvis Rocha
 
Apresentação jsf 2.0
Apresentação jsf 2.0Apresentação jsf 2.0
Apresentação jsf 2.0Paulo Neto
 
Curso de Java (Parte 7) Web Application
Curso de Java (Parte 7) Web ApplicationCurso de Java (Parte 7) Web Application
Curso de Java (Parte 7) Web ApplicationMario Sergio
 
Introdução ao Desenvolvimento de aplicações WEB com JSP
Introdução ao Desenvolvimento de aplicações WEB com JSPIntrodução ao Desenvolvimento de aplicações WEB com JSP
Introdução ao Desenvolvimento de aplicações WEB com JSPManoel Afonso
 
Java Web Dev Introdução
Java Web Dev IntroduçãoJava Web Dev Introdução
Java Web Dev IntroduçãoMarcio Marinho
 
Frameworks de Desenvolvimento Web com PHP
Frameworks de Desenvolvimento Web com PHPFrameworks de Desenvolvimento Web com PHP
Frameworks de Desenvolvimento Web com PHPElton Minetto
 
Html5 pt - Offline Apps
Html5 pt - Offline AppsHtml5 pt - Offline Apps
Html5 pt - Offline AppsByclosure
 
Brutos Framework (Java WEB MVC)
Brutos Framework (Java WEB MVC)Brutos Framework (Java WEB MVC)
Brutos Framework (Java WEB MVC)Afonso Brandão
 
Introdução ao JBoss Fuse 6.x: criação e implantação de um serviço CXF
Introdução ao JBoss Fuse 6.x: criação e implantação de um serviço CXFIntrodução ao JBoss Fuse 6.x: criação e implantação de um serviço CXF
Introdução ao JBoss Fuse 6.x: criação e implantação de um serviço CXFRafael T. C. Soares (tuelho)
 

Semelhante a Webcast portlets-jsf (20)

JBoss Portlet Bridge
JBoss Portlet BridgeJBoss Portlet Bridge
JBoss Portlet Bridge
 
JSF e outras tecnologias Java Web - IMES.java
JSF e outras tecnologias Java Web - IMES.javaJSF e outras tecnologias Java Web - IMES.java
JSF e outras tecnologias Java Web - IMES.java
 
JBoss Fuse Workshop Desenvolvimento - Parte 1
JBoss Fuse Workshop Desenvolvimento - Parte 1JBoss Fuse Workshop Desenvolvimento - Parte 1
JBoss Fuse Workshop Desenvolvimento - Parte 1
 
Desenvolvimento web em java com JSP e Servlets
Desenvolvimento web em java com JSP e ServletsDesenvolvimento web em java com JSP e Servlets
Desenvolvimento web em java com JSP e Servlets
 
Construindo portlets para IBM WebSphere Portal – Parte 1
Construindo portlets para IBM WebSphere Portal – Parte 1Construindo portlets para IBM WebSphere Portal – Parte 1
Construindo portlets para IBM WebSphere Portal – Parte 1
 
Sistema S2DG e Tecnologias Web
Sistema S2DG e Tecnologias WebSistema S2DG e Tecnologias Web
Sistema S2DG e Tecnologias Web
 
JBoss Fuse Service Works - O Fuse além da integração - PT-BR
JBoss Fuse Service Works - O Fuse além da integração - PT-BRJBoss Fuse Service Works - O Fuse além da integração - PT-BR
JBoss Fuse Service Works - O Fuse além da integração - PT-BR
 
Tutorial JSF 2.0 (2012)
Tutorial JSF 2.0 (2012)Tutorial JSF 2.0 (2012)
Tutorial JSF 2.0 (2012)
 
Apresentação jsf 2.0
Apresentação jsf 2.0Apresentação jsf 2.0
Apresentação jsf 2.0
 
Curso de Java (Parte 7) Web Application
Curso de Java (Parte 7) Web ApplicationCurso de Java (Parte 7) Web Application
Curso de Java (Parte 7) Web Application
 
Introdução ao Desenvolvimento de aplicações WEB com JSP
Introdução ao Desenvolvimento de aplicações WEB com JSPIntrodução ao Desenvolvimento de aplicações WEB com JSP
Introdução ao Desenvolvimento de aplicações WEB com JSP
 
Java Web Dev Introdução
Java Web Dev IntroduçãoJava Web Dev Introdução
Java Web Dev Introdução
 
Aula 05 - Java Script Básico
Aula 05 -  Java Script BásicoAula 05 -  Java Script Básico
Aula 05 - Java Script Básico
 
Frameworks de Desenvolvimento Web com PHP
Frameworks de Desenvolvimento Web com PHPFrameworks de Desenvolvimento Web com PHP
Frameworks de Desenvolvimento Web com PHP
 
Phpub #8 websockets
Phpub #8   websocketsPhpub #8   websockets
Phpub #8 websockets
 
Html5 pt - Offline Apps
Html5 pt - Offline AppsHtml5 pt - Offline Apps
Html5 pt - Offline Apps
 
Servlets e jsp
Servlets e jspServlets e jsp
Servlets e jsp
 
servlet-introducao
servlet-introducaoservlet-introducao
servlet-introducao
 
Brutos Framework (Java WEB MVC)
Brutos Framework (Java WEB MVC)Brutos Framework (Java WEB MVC)
Brutos Framework (Java WEB MVC)
 
Introdução ao JBoss Fuse 6.x: criação e implantação de um serviço CXF
Introdução ao JBoss Fuse 6.x: criação e implantação de um serviço CXFIntrodução ao JBoss Fuse 6.x: criação e implantação de um serviço CXF
Introdução ao JBoss Fuse 6.x: criação e implantação de um serviço CXF
 

Webcast portlets-jsf

  • 1. Desenvolvendo Portlets utilizando JSF, Ajax, Richfaces Gustavo Lira Consultor – 4Linux gustavo@4linux.com.br
  • 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. 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. 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. 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. 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. 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
  • 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. 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. 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. 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. 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>