SlideShare uma empresa Scribd logo
1 de 39
Java Server Faces
João Sávio Ceregatti Longo
Campus Ambassador
Sun Microsystems

                             1
Por que Java Server Faces?
• Duas técnicas de desenvolvimento de aplicativos
  para web:

(1) Desenvolvimento rápido;

(2) Programação aprofundada;




                     Sun Confidential: Internal Only   2
Por que Java Server Faces?
• Facilidade de programar interface de usuários

• É mais do que um framework, é uma especificação
  baseada em MVC

• Suporte a internacionalização

• Conversores e validadores



                      Sun Confidential: Internal Only   3
Por que Java Server Faces?
• Flexibilidade para renderização

• Facilita a transferência dos dados entre telas e
  camadas de negócio através da EL

• Padrão

• Open Source



                      Sun Confidential: Internal Only   4
Empresas que utilizam JSF (não-oficial)




                Sun Confidential: Internal Only   5
Empresas que utilizam JSF (não-oficial)
• Vivo
• CVC
• SUS
• TIM
• www.comprafacil.com.br
• Banco IBI


                    Sun Confidential: Internal Only   6
O que ele possui?
• Conjunto de componentes de UI pré-desenvolvidos

• Modelo de programação dirigida por eventos

• Modelo de componentes que permite a utilização
  de outros componentes fornecidos por terceiros




                     Sun Confidential: Internal Only   7
Implementações JSF
• Morraja (JSF RI) – Sun Microsystems

• MyFaces – Apache

• ADF Faces – Oracle

• Implementação da IBM

• Etc


                       Sun Confidential: Internal Only   8
Componentes JSF
• Woodstock

• ICEFaces

• Apache Tomahawk

• JBoss RichFaces



• http://www.jsfmatrix.net
                       Sun Confidential: Internal Only   9
Integração com frameworks
• Visual Web JSF

• Hibernate

• Spring Web

• Struts

• Axis2

• Facelets
                   Sun Confidential: Internal Only   10
Servidores
• Glassfish

• Apache Tomcat

• JBoss Application Server

• IBM WebSphere

• Etc


                     Sun Confidential: Internal Only   11
Entendendo um
 pouco de JSF




 Sun Confidential: Internal Only   12
Conceitos importantes
• Tags JSF

• Beans

• Backing Beans

• Regras de Navegação

• Navegação estática x dinâmica


                     Sun Confidential: Internal Only   13
Algumas Tags JSF
• <f:view>

• <h:form>

• <h:inputText>

• <h:inputSecret>

• <h:commandButton>

• http://www.horstmann.com/corejsf/jsf-tags.html
                      Sun Confidential: Internal Only   14
Beans
• Classes simples com variáveis e seus respectivos
  métodos setters e getters




                     Sun Confidential: Internal Only   15
Beans
public class Usuario {
     private String login;

     public void setLogin(String login) {
          this.login = login;
     }
     public String getLogin() {
          return login;
     }
}
                             Sun Confidential: Internal Only   16
Backing Beans
• Objetos que sofrerão alterações em seus atributos
  durante uma requisição, assim como seus métodos
  podem ser chamados a partir de um command

• Contém as variáveis que serão mostradas na tela

• São configurados no faces-config.xml

• 3 tipos de escopo: request, session e application


                      Sun Confidential: Internal Only   17
Backing Beans
public class BackingBean {
     private Usuario usuario = new Usuario();
     public String logar() {
           if (usuario.getLogin().equals(“João Sávio”))
                 return “gotoMain”;
           else
                 return “gotoErro”;
     }
     //sets e gets de usuario
}
                            Sun Confidential: Internal Only   18
Backing Beans
<managed-bean>
    <managed-bean-name>bb</managed-bean-name>
    <managed-bean-class>BackingBean</managed-bean-class>
    <managed-bean-scope>session</managed-bean-scope>
</managed-bean>




                        Sun Confidential: Internal Only    19
Regras de Navegação
• - Ei, para qual página vamos agora?;

• Configuradas também no faces-config.xml;




                      Sun Confidential: Internal Only   20
Regras de Navegação
<navigation-rule>
     <from-view-id>/welcomeJSF.jsp</from-view-id>
     <navigation-case>
          <from-outcome>gotoMain</from-outcome>
          <to-view-id>/main.jsp</to-view-id>
     </navigation-case>
     ...
</navigation-rule>

                     Sun Confidential: Internal Only   21
Expression Language (EL)
• É uma poderosa linguagem de expressão para
  acessar propriedades de beans e coleções

• Quando ocorrer uma requisição pelo browser, os
  elementos da página são preenchidos
  dinamicamente pela camada de negócios




                     Sun Confidential: Internal Only   22
Expression Language (EL)
• Utilizamos a notação:

 “#{apelido.algumaCoisa}”

 para acessar algum campo ou método do Backing
 Bean;




                      Sun Confidential: Internal Only   23
Juntando Tudo
<body>
   <f:view>
        <h:form>
            Login: <h:inputText value="#{bb.usuario.login}"/>
            <h:commandButton value="OK”
                                action="#{bb.logar}"/>
        </h:form>
   </f:view>
</body>

                         Sun Confidential: Internal Only   24
Juntando Tudo
<h:inputText value = “#{bb.usuario.login}“/>

• acessa a variável "login" do objeto “usuario” que
  está definido no Backing Bean chamado de "bb";



<h:commandButton value=“OK” action=”#{bb.logar}”/>

• chama o método "logar" do BackingBean "bb";

                       Sun Confidential: Internal Only   25
Navegação Estática x Dinâmica
• Estática:
 <h:commandButton value=”Login” action=”gotoMain”/>;



• Dinâmica:
 <h:commandButton value=”Login” action=”#{bb.logar}”/>;



                       Sun Confidential: Internal Only    26
Model-View-Controller
       (MVC)




 Sun Confidential: Internal Only   27
MVC
• É um padrão para desenvolvimento de software

• Divisão em 3 camadas:
  >> Model
  >> View
  >> Controller

• MVC 2 = MVC + Front Controller


                    Sun Confidential: Internal Only   28
JSF e MVC 2




              Sun Confidential: Internal Only   29
JSF e MVC 2
• O Controller despacha as Solicitações ao Model;

• A View observa o Model;




                     Sun Confidential: Internal Only   30
JSF e MVC 2
• Resumo:
✔   Model – beans e acesso a banco de dados;
✔   View – páginas JSP;
✔   Controller – Backing Beans;




                          Sun Confidential: Internal Only   31
Usando o NetBeans




 Sun Confidential: Internal Only   32
Sun Confidential: Internal Only   33
Sun Confidential: Internal Only   34
Sun Confidential: Internal Only   35
Sun Confidential: Internal Only   36
Sun Confidential: Internal Only   37
Links
• Entendendo um pouco de Java Server Faces (JSF):
  http://www.javafree.org/artigo/871659/Entendendo-um-
  pouco-de-Java-Server-Faces-JSF.html
• Especificação oficial JSF (capítulos 10 - 14):
  http://java.sun.com/javaee/5/docs/tutorial/doc/bnaph.html
• www.rponte.com.br
• Lista de e-mail:
  javasf@googlegroups.com




                         Sun Confidential: Internal Only      38
Obrigado!
João Sávio Ceregatti Longo
joao.savio@sun.com / joaosavio@gmail.com
www.joaosavio.com

                                           39

Mais conteúdo relacionado

Mais procurados

Melhores práticas de deployment do IBM Connections
Melhores práticas de deployment do IBM ConnectionsMelhores práticas de deployment do IBM Connections
Melhores práticas de deployment do IBM Connectionsrodrigoareis
 
Ionic Framework - Parte 1 - Iniciando um Projeto mais Robusto
Ionic Framework - Parte 1 - Iniciando um Projeto mais RobustoIonic Framework - Parte 1 - Iniciando um Projeto mais Robusto
Ionic Framework - Parte 1 - Iniciando um Projeto mais RobustoAlamo Saravali
 
JSF 2 e Primefaces - 4º Encontro Mensal do Gojava
JSF 2 e Primefaces - 4º Encontro Mensal do GojavaJSF 2 e Primefaces - 4º Encontro Mensal do Gojava
JSF 2 e Primefaces - 4º Encontro Mensal do GojavaFrederico Maia Arantes
 
JBoss-WildFly - Avançado
JBoss-WildFly - AvançadoJBoss-WildFly - Avançado
JBoss-WildFly - AvançadoAdriano Schmidt
 
Uma abordagem ao Java EE 6
Uma abordagem ao Java EE 6Uma abordagem ao Java EE 6
Uma abordagem ao Java EE 6danielfcampos
 
Zabbix?!? Sou Dev, o que eu tenho a ver com isso?!? - 3º Zabbix Meetup do In...
 Zabbix?!? Sou Dev, o que eu tenho a ver com isso?!? - 3º Zabbix Meetup do In... Zabbix?!? Sou Dev, o que eu tenho a ver com isso?!? - 3º Zabbix Meetup do In...
Zabbix?!? Sou Dev, o que eu tenho a ver com isso?!? - 3º Zabbix Meetup do In...Zabbix BR
 
Desenvolvimento em três camadas com PHP 5, MVC e AJAX
Desenvolvimento em três camadas com PHP 5, MVC e AJAXDesenvolvimento em três camadas com PHP 5, MVC e AJAX
Desenvolvimento em três camadas com PHP 5, MVC e AJAXOtávio Calaça Xavier
 
Rest web services com Java
Rest web services com JavaRest web services com Java
Rest web services com JavajesuinoPower
 
Brutos Framework (Java WEB MVC)
Brutos Framework (Java WEB MVC)Brutos Framework (Java WEB MVC)
Brutos Framework (Java WEB MVC)Afonso Brandão
 
Tutorial WebSocket em Java
Tutorial WebSocket em JavaTutorial WebSocket em Java
Tutorial WebSocket em Javalucascsoliveira
 
Nadando em Dinheiro com jQuery
Nadando em Dinheiro com jQueryNadando em Dinheiro com jQuery
Nadando em Dinheiro com jQueryReinaldo Junior
 
JavaServer Faces Produtividade em Desenvolvimento
JavaServer Faces Produtividade em DesenvolvimentoJavaServer Faces Produtividade em Desenvolvimento
JavaServer Faces Produtividade em DesenvolvimentoEduardo Bregaida
 

Mais procurados (20)

JBoss5 @ FISL
JBoss5 @ FISLJBoss5 @ FISL
JBoss5 @ FISL
 
Melhores práticas de deployment do IBM Connections
Melhores práticas de deployment do IBM ConnectionsMelhores práticas de deployment do IBM Connections
Melhores práticas de deployment do IBM Connections
 
Ionic Framework - Parte 1 - Iniciando um Projeto mais Robusto
Ionic Framework - Parte 1 - Iniciando um Projeto mais RobustoIonic Framework - Parte 1 - Iniciando um Projeto mais Robusto
Ionic Framework - Parte 1 - Iniciando um Projeto mais Robusto
 
JavaFX 2
JavaFX 2JavaFX 2
JavaFX 2
 
Web2.0 e Ajax
Web2.0 e AjaxWeb2.0 e Ajax
Web2.0 e Ajax
 
Apresentacao_Zabbix
Apresentacao_ZabbixApresentacao_Zabbix
Apresentacao_Zabbix
 
JSF 2 e Primefaces - 4º Encontro Mensal do Gojava
JSF 2 e Primefaces - 4º Encontro Mensal do GojavaJSF 2 e Primefaces - 4º Encontro Mensal do Gojava
JSF 2 e Primefaces - 4º Encontro Mensal do Gojava
 
Jboss tutorial
Jboss tutorialJboss tutorial
Jboss tutorial
 
JBoss-WildFly - Avançado
JBoss-WildFly - AvançadoJBoss-WildFly - Avançado
JBoss-WildFly - Avançado
 
Uma abordagem ao Java EE 6
Uma abordagem ao Java EE 6Uma abordagem ao Java EE 6
Uma abordagem ao Java EE 6
 
Zabbix?!? Sou Dev, o que eu tenho a ver com isso?!? - 3º Zabbix Meetup do In...
 Zabbix?!? Sou Dev, o que eu tenho a ver com isso?!? - 3º Zabbix Meetup do In... Zabbix?!? Sou Dev, o que eu tenho a ver com isso?!? - 3º Zabbix Meetup do In...
Zabbix?!? Sou Dev, o que eu tenho a ver com isso?!? - 3º Zabbix Meetup do In...
 
Desenvolvimento em três camadas com PHP 5, MVC e AJAX
Desenvolvimento em três camadas com PHP 5, MVC e AJAXDesenvolvimento em três camadas com PHP 5, MVC e AJAX
Desenvolvimento em três camadas com PHP 5, MVC e AJAX
 
Introdução a jsf
Introdução a jsfIntrodução a jsf
Introdução a jsf
 
Rest web services com Java
Rest web services com JavaRest web services com Java
Rest web services com Java
 
Curso jsf
Curso jsfCurso jsf
Curso jsf
 
Brutos Framework (Java WEB MVC)
Brutos Framework (Java WEB MVC)Brutos Framework (Java WEB MVC)
Brutos Framework (Java WEB MVC)
 
Tutorial WebSocket em Java
Tutorial WebSocket em JavaTutorial WebSocket em Java
Tutorial WebSocket em Java
 
Nadando em Dinheiro com jQuery
Nadando em Dinheiro com jQueryNadando em Dinheiro com jQuery
Nadando em Dinheiro com jQuery
 
Aula parte 2 de JSF 2.2
Aula parte 2 de JSF 2.2Aula parte 2 de JSF 2.2
Aula parte 2 de JSF 2.2
 
JavaServer Faces Produtividade em Desenvolvimento
JavaServer Faces Produtividade em DesenvolvimentoJavaServer Faces Produtividade em Desenvolvimento
JavaServer Faces Produtividade em Desenvolvimento
 

Semelhante a JSF Introdução

Minicurso Java Server Faces
Minicurso Java Server FacesMinicurso Java Server Faces
Minicurso Java Server FacesJoão Longo
 
JSF 2.0 e ScrumToys
JSF 2.0 e ScrumToysJSF 2.0 e ScrumToys
JSF 2.0 e ScrumToysDr. Spock
 
JSF 2.0 e ScrumToys
JSF 2.0 e ScrumToysJSF 2.0 e ScrumToys
JSF 2.0 e ScrumToysDr. Spock
 
CDI Extensions e DeltaSpike
CDI Extensions e DeltaSpikeCDI Extensions e DeltaSpike
CDI Extensions e DeltaSpikeRafael Benevides
 
Java EE 6 e JBoss 6.0
Java EE 6 e JBoss 6.0Java EE 6 e JBoss 6.0
Java EE 6 e JBoss 6.0Edgar Silva
 
JSF 2.0: Uma Evolução nas Interfaces Web com Java
JSF 2.0: Uma Evolução nas Interfaces Web com JavaJSF 2.0: Uma Evolução nas Interfaces Web com Java
JSF 2.0: Uma Evolução nas Interfaces Web com JavaDr. Spock
 
Apresentação jsf 2.0
Apresentação jsf 2.0Apresentação jsf 2.0
Apresentação jsf 2.0Paulo Neto
 
5 técnicas para acelerar o desenvolvimento e reduzir Bugs em aplicações WEB
5 técnicas para acelerar o desenvolvimento e reduzir Bugs em aplicações WEB5 técnicas para acelerar o desenvolvimento e reduzir Bugs em aplicações WEB
5 técnicas para acelerar o desenvolvimento e reduzir Bugs em aplicações WEBRafael Chinelato Del Nero
 
Curso de Enterprise JavaBeans (EJB) (JavaEE 7)
Curso de Enterprise JavaBeans (EJB) (JavaEE 7)Curso de Enterprise JavaBeans (EJB) (JavaEE 7)
Curso de Enterprise JavaBeans (EJB) (JavaEE 7)Helder da Rocha
 
Novidades do JSF: Um tour completo no JSF 2.2
Novidades do JSF: Um tour completo no JSF 2.2Novidades do JSF: Um tour completo no JSF 2.2
Novidades do JSF: Um tour completo no JSF 2.2Dr. Spock
 
As grandes novidades do JSF 2.0!
As grandes novidades do JSF 2.0!As grandes novidades do JSF 2.0!
As grandes novidades do JSF 2.0!Diego Santos
 
MC31 - Desenvolvimento um Aplicativo completo usando JSF, EJB e padrões
MC31 - Desenvolvimento um Aplicativo completo usando JSF, EJB e padrõesMC31 - Desenvolvimento um Aplicativo completo usando JSF, EJB e padrões
MC31 - Desenvolvimento um Aplicativo completo usando JSF, EJB e padrõesRodrigo Cândido da Silva
 
Produtividade com JavaServer Faces
Produtividade com JavaServer FacesProdutividade com JavaServer Faces
Produtividade com JavaServer FacesEduardo Bregaida
 
TechDay - Sistemas WEB em Java - Rogério N. Jr.
TechDay - Sistemas WEB em Java - Rogério N. Jr.TechDay - Sistemas WEB em Java - Rogério N. Jr.
TechDay - Sistemas WEB em Java - Rogério N. Jr.Rogério Napoleão Jr.
 

Semelhante a JSF Introdução (20)

Minicurso Java Server Faces
Minicurso Java Server FacesMinicurso Java Server Faces
Minicurso Java Server Faces
 
Mini curso JBC
Mini curso JBCMini curso JBC
Mini curso JBC
 
JSF 2.0 e ScrumToys
JSF 2.0 e ScrumToysJSF 2.0 e ScrumToys
JSF 2.0 e ScrumToys
 
JSF & REST
JSF & RESTJSF & REST
JSF & REST
 
JSF 2.0 e ScrumToys
JSF 2.0 e ScrumToysJSF 2.0 e ScrumToys
JSF 2.0 e ScrumToys
 
CDI Extensions e DeltaSpike
CDI Extensions e DeltaSpikeCDI Extensions e DeltaSpike
CDI Extensions e DeltaSpike
 
Java EE 6 e JBoss 6.0
Java EE 6 e JBoss 6.0Java EE 6 e JBoss 6.0
Java EE 6 e JBoss 6.0
 
JSF 2.0: Uma Evolução nas Interfaces Web com Java
JSF 2.0: Uma Evolução nas Interfaces Web com JavaJSF 2.0: Uma Evolução nas Interfaces Web com Java
JSF 2.0: Uma Evolução nas Interfaces Web com Java
 
Interfaces ricas JSF
Interfaces ricas JSF Interfaces ricas JSF
Interfaces ricas JSF
 
Apresentação jsf 2.0
Apresentação jsf 2.0Apresentação jsf 2.0
Apresentação jsf 2.0
 
5 técnicas para acelerar o desenvolvimento e reduzir Bugs em aplicações WEB
5 técnicas para acelerar o desenvolvimento e reduzir Bugs em aplicações WEB5 técnicas para acelerar o desenvolvimento e reduzir Bugs em aplicações WEB
5 técnicas para acelerar o desenvolvimento e reduzir Bugs em aplicações WEB
 
Framework web 3 - JSF + Spring boot
Framework web 3 - JSF + Spring bootFramework web 3 - JSF + Spring boot
Framework web 3 - JSF + Spring boot
 
Jboss7
Jboss7Jboss7
Jboss7
 
Curso de Enterprise JavaBeans (EJB) (JavaEE 7)
Curso de Enterprise JavaBeans (EJB) (JavaEE 7)Curso de Enterprise JavaBeans (EJB) (JavaEE 7)
Curso de Enterprise JavaBeans (EJB) (JavaEE 7)
 
Novidades do JSF: Um tour completo no JSF 2.2
Novidades do JSF: Um tour completo no JSF 2.2Novidades do JSF: Um tour completo no JSF 2.2
Novidades do JSF: Um tour completo no JSF 2.2
 
As grandes novidades do JSF 2.0!
As grandes novidades do JSF 2.0!As grandes novidades do JSF 2.0!
As grandes novidades do JSF 2.0!
 
MC31 - Desenvolvimento um Aplicativo completo usando JSF, EJB e padrões
MC31 - Desenvolvimento um Aplicativo completo usando JSF, EJB e padrõesMC31 - Desenvolvimento um Aplicativo completo usando JSF, EJB e padrões
MC31 - Desenvolvimento um Aplicativo completo usando JSF, EJB e padrões
 
Jsf 2 slideshare
Jsf 2 slideshareJsf 2 slideshare
Jsf 2 slideshare
 
Produtividade com JavaServer Faces
Produtividade com JavaServer FacesProdutividade com JavaServer Faces
Produtividade com JavaServer Faces
 
TechDay - Sistemas WEB em Java - Rogério N. Jr.
TechDay - Sistemas WEB em Java - Rogério N. Jr.TechDay - Sistemas WEB em Java - Rogério N. Jr.
TechDay - Sistemas WEB em Java - Rogério N. Jr.
 

Mais de João Longo

Netbeans 6.7: a única IDE que você precisa!
Netbeans 6.7: a única IDE que você precisa!Netbeans 6.7: a única IDE que você precisa!
Netbeans 6.7: a única IDE que você precisa!João Longo
 
Aplicativos Moveis Com J2ME
Aplicativos Moveis Com J2MEAplicativos Moveis Com J2ME
Aplicativos Moveis Com J2MEJoão Longo
 
Web Services com NetBeans
Web Services com NetBeansWeb Services com NetBeans
Web Services com NetBeansJoão Longo
 
Introdução ao OpenSolaris
Introdução ao OpenSolarisIntrodução ao OpenSolaris
Introdução ao OpenSolarisJoão Longo
 
Java, NetBeans e Orientação a Objetos
Java, NetBeans e Orientação a ObjetosJava, NetBeans e Orientação a Objetos
Java, NetBeans e Orientação a ObjetosJoão Longo
 
Java E Orientacao A Objetos
Java E Orientacao A ObjetosJava E Orientacao A Objetos
Java E Orientacao A ObjetosJoão Longo
 
Sun e Open Source
Sun e Open SourceSun e Open Source
Sun e Open SourceJoão Longo
 

Mais de João Longo (7)

Netbeans 6.7: a única IDE que você precisa!
Netbeans 6.7: a única IDE que você precisa!Netbeans 6.7: a única IDE que você precisa!
Netbeans 6.7: a única IDE que você precisa!
 
Aplicativos Moveis Com J2ME
Aplicativos Moveis Com J2MEAplicativos Moveis Com J2ME
Aplicativos Moveis Com J2ME
 
Web Services com NetBeans
Web Services com NetBeansWeb Services com NetBeans
Web Services com NetBeans
 
Introdução ao OpenSolaris
Introdução ao OpenSolarisIntrodução ao OpenSolaris
Introdução ao OpenSolaris
 
Java, NetBeans e Orientação a Objetos
Java, NetBeans e Orientação a ObjetosJava, NetBeans e Orientação a Objetos
Java, NetBeans e Orientação a Objetos
 
Java E Orientacao A Objetos
Java E Orientacao A ObjetosJava E Orientacao A Objetos
Java E Orientacao A Objetos
 
Sun e Open Source
Sun e Open SourceSun e Open Source
Sun e Open Source
 

JSF Introdução

  • 1. Java Server Faces João Sávio Ceregatti Longo Campus Ambassador Sun Microsystems 1
  • 2. Por que Java Server Faces? • Duas técnicas de desenvolvimento de aplicativos para web: (1) Desenvolvimento rápido; (2) Programação aprofundada; Sun Confidential: Internal Only 2
  • 3. Por que Java Server Faces? • Facilidade de programar interface de usuários • É mais do que um framework, é uma especificação baseada em MVC • Suporte a internacionalização • Conversores e validadores Sun Confidential: Internal Only 3
  • 4. Por que Java Server Faces? • Flexibilidade para renderização • Facilita a transferência dos dados entre telas e camadas de negócio através da EL • Padrão • Open Source Sun Confidential: Internal Only 4
  • 5. Empresas que utilizam JSF (não-oficial) Sun Confidential: Internal Only 5
  • 6. Empresas que utilizam JSF (não-oficial) • Vivo • CVC • SUS • TIM • www.comprafacil.com.br • Banco IBI Sun Confidential: Internal Only 6
  • 7. O que ele possui? • Conjunto de componentes de UI pré-desenvolvidos • Modelo de programação dirigida por eventos • Modelo de componentes que permite a utilização de outros componentes fornecidos por terceiros Sun Confidential: Internal Only 7
  • 8. Implementações JSF • Morraja (JSF RI) – Sun Microsystems • MyFaces – Apache • ADF Faces – Oracle • Implementação da IBM • Etc Sun Confidential: Internal Only 8
  • 9. Componentes JSF • Woodstock • ICEFaces • Apache Tomahawk • JBoss RichFaces • http://www.jsfmatrix.net Sun Confidential: Internal Only 9
  • 10. Integração com frameworks • Visual Web JSF • Hibernate • Spring Web • Struts • Axis2 • Facelets Sun Confidential: Internal Only 10
  • 11. Servidores • Glassfish • Apache Tomcat • JBoss Application Server • IBM WebSphere • Etc Sun Confidential: Internal Only 11
  • 12. Entendendo um pouco de JSF Sun Confidential: Internal Only 12
  • 13. Conceitos importantes • Tags JSF • Beans • Backing Beans • Regras de Navegação • Navegação estática x dinâmica Sun Confidential: Internal Only 13
  • 14. Algumas Tags JSF • <f:view> • <h:form> • <h:inputText> • <h:inputSecret> • <h:commandButton> • http://www.horstmann.com/corejsf/jsf-tags.html Sun Confidential: Internal Only 14
  • 15. Beans • Classes simples com variáveis e seus respectivos métodos setters e getters Sun Confidential: Internal Only 15
  • 16. Beans public class Usuario { private String login; public void setLogin(String login) { this.login = login; } public String getLogin() { return login; } } Sun Confidential: Internal Only 16
  • 17. Backing Beans • Objetos que sofrerão alterações em seus atributos durante uma requisição, assim como seus métodos podem ser chamados a partir de um command • Contém as variáveis que serão mostradas na tela • São configurados no faces-config.xml • 3 tipos de escopo: request, session e application Sun Confidential: Internal Only 17
  • 18. Backing Beans public class BackingBean { private Usuario usuario = new Usuario(); public String logar() { if (usuario.getLogin().equals(“João Sávio”)) return “gotoMain”; else return “gotoErro”; } //sets e gets de usuario } Sun Confidential: Internal Only 18
  • 19. Backing Beans <managed-bean> <managed-bean-name>bb</managed-bean-name> <managed-bean-class>BackingBean</managed-bean-class> <managed-bean-scope>session</managed-bean-scope> </managed-bean> Sun Confidential: Internal Only 19
  • 20. Regras de Navegação • - Ei, para qual página vamos agora?; • Configuradas também no faces-config.xml; Sun Confidential: Internal Only 20
  • 21. Regras de Navegação <navigation-rule> <from-view-id>/welcomeJSF.jsp</from-view-id> <navigation-case> <from-outcome>gotoMain</from-outcome> <to-view-id>/main.jsp</to-view-id> </navigation-case> ... </navigation-rule> Sun Confidential: Internal Only 21
  • 22. Expression Language (EL) • É uma poderosa linguagem de expressão para acessar propriedades de beans e coleções • Quando ocorrer uma requisição pelo browser, os elementos da página são preenchidos dinamicamente pela camada de negócios Sun Confidential: Internal Only 22
  • 23. Expression Language (EL) • Utilizamos a notação: “#{apelido.algumaCoisa}” para acessar algum campo ou método do Backing Bean; Sun Confidential: Internal Only 23
  • 24. Juntando Tudo <body> <f:view> <h:form> Login: <h:inputText value="#{bb.usuario.login}"/> <h:commandButton value="OK” action="#{bb.logar}"/> </h:form> </f:view> </body> Sun Confidential: Internal Only 24
  • 25. Juntando Tudo <h:inputText value = “#{bb.usuario.login}“/> • acessa a variável "login" do objeto “usuario” que está definido no Backing Bean chamado de "bb"; <h:commandButton value=“OK” action=”#{bb.logar}”/> • chama o método "logar" do BackingBean "bb"; Sun Confidential: Internal Only 25
  • 26. Navegação Estática x Dinâmica • Estática: <h:commandButton value=”Login” action=”gotoMain”/>; • Dinâmica: <h:commandButton value=”Login” action=”#{bb.logar}”/>; Sun Confidential: Internal Only 26
  • 27. Model-View-Controller (MVC) Sun Confidential: Internal Only 27
  • 28. MVC • É um padrão para desenvolvimento de software • Divisão em 3 camadas: >> Model >> View >> Controller • MVC 2 = MVC + Front Controller Sun Confidential: Internal Only 28
  • 29. JSF e MVC 2 Sun Confidential: Internal Only 29
  • 30. JSF e MVC 2 • O Controller despacha as Solicitações ao Model; • A View observa o Model; Sun Confidential: Internal Only 30
  • 31. JSF e MVC 2 • Resumo: ✔ Model – beans e acesso a banco de dados; ✔ View – páginas JSP; ✔ Controller – Backing Beans; Sun Confidential: Internal Only 31
  • 32. Usando o NetBeans Sun Confidential: Internal Only 32
  • 38. Links • Entendendo um pouco de Java Server Faces (JSF): http://www.javafree.org/artigo/871659/Entendendo-um- pouco-de-Java-Server-Faces-JSF.html • Especificação oficial JSF (capítulos 10 - 14): http://java.sun.com/javaee/5/docs/tutorial/doc/bnaph.html • www.rponte.com.br • Lista de e-mail: javasf@googlegroups.com Sun Confidential: Internal Only 38
  • 39. Obrigado! João Sávio Ceregatti Longo joao.savio@sun.com / joaosavio@gmail.com www.joaosavio.com 39