JSF – JAVA SEVER FACES
O que é o JSF? JSF é uma tecnologia que incorpora características de um framework MVC (Model-View-Controller) para WEB e de um modelo de interfaces gráficas baseado em eventos. Por basear-se no padrão de projeto MVC, uma de suas melhores vantagens é a clara separação entre a visualização e regras de negócio (modelo). A idéia do padrão MVC é dividir uma aplicação em três camadas: modelo, visualização e controle. O modelo é responsável por representar os objetos de negócio, manter o estado da aplicação e fornecer ao controlador o acesso aos dados. A visualização representa a interface com o usuário, sendo responsável por definir a forma como os dados serão apresentados e encaminhar as ações dos usuários para o controlador. Já a camada de controle é responsável por fazer a ligação entre o modelo e a visualização, além de interpretar as ações do usuário e as traduzir para uma operação sobre o modelo, onde são realizadas mudanças e, então, gerar uma visualização apropriada.
O Padrão MVC segundo JSF No JSF, o controle é composto por um servlet denominado FacesServlet, por arquivos de configuração e por um conjunto de manipuladores de ações e observadores de eventos. O FacesServlet é responsável por receber requisições da WEB, redirecioná-las para o modelo e então remeter uma resposta. Os arquivos de configuração são responsáveis por realizar associações e mapeamentos de ações e pela definição de regras de navegação. Os manipuladores de eventos são responsáveis por receber os dados vindos da camada de visualização, acessar o modelo, e então devolver o resultado para o FacesServlet. O modelo representa os objetos de negócio e executa uma lógica de negócio ao receber os dados vindos da camada de visualização. Finalmente, a visualização é composta por component trees (hierarquia de componentes UI), tornando possível unir um componente ao outro para formar interfaces mais complexas.
Arquitetura JSF baseada no modelo MVC
Caracteristicas Permite que o desenvolvedor crie UIs através de um conjunto de componentes UIs pré-definidos; Fornece um conjunto de tags JSP para acessar os componentes; Reutiliza componentes da página; Associa os eventos do lado cliente com os manipuladores dos eventos do lado do servidor (os componentes de entrada possuem um valor local representando o estado no lado servidor); Fornece separação de funções que envolvem a construção de aplicações Web.
Caracteristicas (cont.) JSF inclui: Suporte a internacionalização e acessibilidade; Um conjunto padrão de componentes de interface de usuário que possibilitam validação padronizada; Duas bibliotecas de etiqueta ("tag libraries") especiais do JavaServer Pages (JSP) para expressar a interface do JavaServer Faces dentro de uma página JSP; Um modelo de eventos do lado servidor ("server-side event model"); Gerência de estados; Managed Beans (JavaBeans criados com injeção de dependência ("dependency injection")); Linguagem de Expressão Unificada ("Unified Expression Language") para JSP 2.0 e JSF 1.2.
Implementações Sun RI (Implementação de Referência. Apache MyFaces ECruiser
Apache MyFaces A fundação Apache vem envidando esforços na implementação da especificação através do projeto MyFaces. O reconhecimento do trabalho é visto por diversas empresas, tanto é que a Oracle doou os fontes do ADF Faces, conjunto de mais de 100 componentes divididos em vários subprojetos, para o projeto MyFaces que o denominará de Trinidad. Seus componentes são completamente compatíveis com a implementação de referência da Sun.
Instalação Ferramentas utilizadas: Tomcat 5.5 - http://tomcat.apache.org/download-55.cgi Apache MyFaces 1.1.5 - http://myfaces.apache.org/download.html
Criando uma aplicação Arquivos de configuração: faces-config.xml, web.xml Arquivo JSP: helloworld.jsp Arquivo Java: HelloWorldBean.java
Criando uma Aplicação(cont.) Conteúdo da Aplicação Conteúdo da Pasta lib
Criando uma Aplicação(cont.) faces-config.xml C:\Arquivos de programas\Apache Software Foundation\Tomcat 5.5\webapps\helloworld\WEB-INF <?xml version=&quot;1.0&quot;?> <!DOCTYPE web-app PUBLIC &quot;-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN&quot; &quot;http://java.sun.com/dtd/web-app_2_3.dtd&quot;> <faces-config> <managed-bean> <managed-bean-name>helloWorldBean</managed-bean-name> <managed-bean-class>br.eti.faces.HelloWorldBean</managed-bean-class> <managed-bean-scope>request</managed-bean-scope> </managed-bean> </faces-config> <?xml version=&quot;1.0&quot;?> <!DOCTYPE web-app PUBLIC &quot;-//Sun Microsystems, Inc.//DTD Web Application 2.3//EM“ &quot;http://java.sun.com/dtd/web-app_2_3.dtd&quot;> <web-app> <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> </web-app> web.xml Formato XML Inicialização do arquivo de configuração Configuração para a utilização do JSF no Servlet Nome de identificação Identificação das paginas processadas Formato XML Inicialização do arquivo de configuração Classe para trabalhar com JSF Parametros da Classe: NOME CLASSE UTILIZADA COMPORTAMENTO
Criando uma Aplicação(cont.) helloworld.jsp C:\Arquivos de programas\Apache Software Foundation\Tomcat 5.5\webapps\helloworld <%@ taglib uri=&quot;http://java.sun.com/jsf/html&quot; prefix=&quot;h&quot;%> <%@ taglib uri=&quot;http://java.sun.com/jsf/core&quot; prefix=&quot;f&quot;%> <html> <title>Exemplo JSF</title> <body bgcolor=&quot;#000000&quot; text=&quot;#FFFFFF&quot;> <center> <font size=&quot;4&quot; face=&quot;Arial, Helvetica, sans-serif&quot;><strong> <f:view> <h:form> <h:outputText value=&quot;#{helloWorldBean.message}&quot;/> </h:form> </f:view> </strong></font> </center> </body> </html> HTML Principal tag do JSF Formulario Componente JSF para imprimir texto/Expressão EL
Criando uma Aplicação(cont.) HelloWorldBean.java package br.eti.faces; public class HelloWorldBean{ private String message; public HelloWorldBean() { message= &quot;Exemplo de Aplicação JSF. Olá Mundo!&quot;; } public void setMessage(String message){ this.message=message; } public String getMessage(){ return message; } } C:\Arquivos de programas\Apache Software Foundation\Tomcat 5.5\webapps\helloworld\WEB-INF\classes\br\eti\faces
Criando uma Aplicação(cont.) Compilação
Criando uma Aplicação(cont.) Resultado:
Referências www.guj.com.br http://pt.wikipedia.org/wiki/JavaServer_Faces

Jsf – Java Sever Faces

  • 1.
    JSF – JAVASEVER FACES
  • 2.
    O que éo JSF? JSF é uma tecnologia que incorpora características de um framework MVC (Model-View-Controller) para WEB e de um modelo de interfaces gráficas baseado em eventos. Por basear-se no padrão de projeto MVC, uma de suas melhores vantagens é a clara separação entre a visualização e regras de negócio (modelo). A idéia do padrão MVC é dividir uma aplicação em três camadas: modelo, visualização e controle. O modelo é responsável por representar os objetos de negócio, manter o estado da aplicação e fornecer ao controlador o acesso aos dados. A visualização representa a interface com o usuário, sendo responsável por definir a forma como os dados serão apresentados e encaminhar as ações dos usuários para o controlador. Já a camada de controle é responsável por fazer a ligação entre o modelo e a visualização, além de interpretar as ações do usuário e as traduzir para uma operação sobre o modelo, onde são realizadas mudanças e, então, gerar uma visualização apropriada.
  • 3.
    O Padrão MVCsegundo JSF No JSF, o controle é composto por um servlet denominado FacesServlet, por arquivos de configuração e por um conjunto de manipuladores de ações e observadores de eventos. O FacesServlet é responsável por receber requisições da WEB, redirecioná-las para o modelo e então remeter uma resposta. Os arquivos de configuração são responsáveis por realizar associações e mapeamentos de ações e pela definição de regras de navegação. Os manipuladores de eventos são responsáveis por receber os dados vindos da camada de visualização, acessar o modelo, e então devolver o resultado para o FacesServlet. O modelo representa os objetos de negócio e executa uma lógica de negócio ao receber os dados vindos da camada de visualização. Finalmente, a visualização é composta por component trees (hierarquia de componentes UI), tornando possível unir um componente ao outro para formar interfaces mais complexas.
  • 4.
  • 5.
    Caracteristicas Permite queo desenvolvedor crie UIs através de um conjunto de componentes UIs pré-definidos; Fornece um conjunto de tags JSP para acessar os componentes; Reutiliza componentes da página; Associa os eventos do lado cliente com os manipuladores dos eventos do lado do servidor (os componentes de entrada possuem um valor local representando o estado no lado servidor); Fornece separação de funções que envolvem a construção de aplicações Web.
  • 6.
    Caracteristicas (cont.) JSFinclui: Suporte a internacionalização e acessibilidade; Um conjunto padrão de componentes de interface de usuário que possibilitam validação padronizada; Duas bibliotecas de etiqueta (&quot;tag libraries&quot;) especiais do JavaServer Pages (JSP) para expressar a interface do JavaServer Faces dentro de uma página JSP; Um modelo de eventos do lado servidor (&quot;server-side event model&quot;); Gerência de estados; Managed Beans (JavaBeans criados com injeção de dependência (&quot;dependency injection&quot;)); Linguagem de Expressão Unificada (&quot;Unified Expression Language&quot;) para JSP 2.0 e JSF 1.2.
  • 7.
    Implementações Sun RI(Implementação de Referência. Apache MyFaces ECruiser
  • 8.
    Apache MyFaces Afundação Apache vem envidando esforços na implementação da especificação através do projeto MyFaces. O reconhecimento do trabalho é visto por diversas empresas, tanto é que a Oracle doou os fontes do ADF Faces, conjunto de mais de 100 componentes divididos em vários subprojetos, para o projeto MyFaces que o denominará de Trinidad. Seus componentes são completamente compatíveis com a implementação de referência da Sun.
  • 9.
    Instalação Ferramentas utilizadas:Tomcat 5.5 - http://tomcat.apache.org/download-55.cgi Apache MyFaces 1.1.5 - http://myfaces.apache.org/download.html
  • 10.
    Criando uma aplicaçãoArquivos de configuração: faces-config.xml, web.xml Arquivo JSP: helloworld.jsp Arquivo Java: HelloWorldBean.java
  • 11.
    Criando uma Aplicação(cont.)Conteúdo da Aplicação Conteúdo da Pasta lib
  • 12.
    Criando uma Aplicação(cont.)faces-config.xml C:\Arquivos de programas\Apache Software Foundation\Tomcat 5.5\webapps\helloworld\WEB-INF <?xml version=&quot;1.0&quot;?> <!DOCTYPE web-app PUBLIC &quot;-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN&quot; &quot;http://java.sun.com/dtd/web-app_2_3.dtd&quot;> <faces-config> <managed-bean> <managed-bean-name>helloWorldBean</managed-bean-name> <managed-bean-class>br.eti.faces.HelloWorldBean</managed-bean-class> <managed-bean-scope>request</managed-bean-scope> </managed-bean> </faces-config> <?xml version=&quot;1.0&quot;?> <!DOCTYPE web-app PUBLIC &quot;-//Sun Microsystems, Inc.//DTD Web Application 2.3//EM“ &quot;http://java.sun.com/dtd/web-app_2_3.dtd&quot;> <web-app> <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> </web-app> web.xml Formato XML Inicialização do arquivo de configuração Configuração para a utilização do JSF no Servlet Nome de identificação Identificação das paginas processadas Formato XML Inicialização do arquivo de configuração Classe para trabalhar com JSF Parametros da Classe: NOME CLASSE UTILIZADA COMPORTAMENTO
  • 13.
    Criando uma Aplicação(cont.)helloworld.jsp C:\Arquivos de programas\Apache Software Foundation\Tomcat 5.5\webapps\helloworld <%@ taglib uri=&quot;http://java.sun.com/jsf/html&quot; prefix=&quot;h&quot;%> <%@ taglib uri=&quot;http://java.sun.com/jsf/core&quot; prefix=&quot;f&quot;%> <html> <title>Exemplo JSF</title> <body bgcolor=&quot;#000000&quot; text=&quot;#FFFFFF&quot;> <center> <font size=&quot;4&quot; face=&quot;Arial, Helvetica, sans-serif&quot;><strong> <f:view> <h:form> <h:outputText value=&quot;#{helloWorldBean.message}&quot;/> </h:form> </f:view> </strong></font> </center> </body> </html> HTML Principal tag do JSF Formulario Componente JSF para imprimir texto/Expressão EL
  • 14.
    Criando uma Aplicação(cont.)HelloWorldBean.java package br.eti.faces; public class HelloWorldBean{ private String message; public HelloWorldBean() { message= &quot;Exemplo de Aplicação JSF. Olá Mundo!&quot;; } public void setMessage(String message){ this.message=message; } public String getMessage(){ return message; } } C:\Arquivos de programas\Apache Software Foundation\Tomcat 5.5\webapps\helloworld\WEB-INF\classes\br\eti\faces
  • 15.
  • 16.
  • 17.