Uma abordagem ao Java EE 6
Daniel Campos e Ernesto Oliveira
Tópicos Abordados
     JavaEE, o que é?;
     Arquitetura MVC;
     As novidades do Java EE 6;
     RIA e exemplos práticos;
     Próximos passos.




                          www.mgjug.com.br
JavaEE, o que é?
 Conjunto de bibliotecas (API);
 Padrão de desenvolvimento;
Componentes modulares;
Executada em um servidor:
   Web container:
      Tomcat.

   Application Server:
      Glassfish;

      JbossAS.


                                   www.mgjug.com.br
Arquitetura MVC
Model-View-Controller




                        www.mgjug.com.br
As novidades do Java EE 6




                            www.mgjug.com.br
As novidades do Java EE 6
  Servlet 3.0

 Como é no Servlet 2.5;
 Como está no Servlet 3.0;
 Modularização do web.xml;
 Servlets em tempo de execução;
 Asynchronous Processing.




                                   www.mgjug.com.br
As novidades do Java EE 6
 Como é no Servlet 2.5
 Declarações extensas no arquivo web.xml.

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns=“http://java.sun.com/xml/ns/javaee”
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance”
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
    http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd”     version="2.5">
           <display-name>Aplicação WEB</display-name>
           <servlet>
                 <servlet-name>HelloWorld</servlet-name>
                 <servlet-class>com.webapp. HelloWorld</servlet-class>
           </servlet>
           <servlet-mapping>
                 <servlet-name>HelloWorld</servlet-name>
                 <url-pattern>/hello</url-pattern>
           </servlet-mapping>
    </web-app>

                                                                            www.mgjug.com.br
As novidades do Java EE 6
 Como é no Servlet 2.5
    public class HelloWorld extends HttpServlet {

     @Override
    protected void doGet(HttpServletRequest request,
    HttpServetResponse response) throws ServletException,
    IOException {
         PrintWriter out = response.getWriter();
         out.println(“MGJUG");
     }
     @Override
       protected void doPost(HttpServletRequest request,
    HttpServletResponse response)
            throws ServletException, IOException {

        }
    }
                                                    www.mgjug.com.br
As novidades do Java EE 6
 Como está no Servlet 3.0
 Uso de anotações (annotations) ao invés de
 XML.
  @WebServlet(“/hello”)
  public class HelloWorld extends HttpServlet {

   @Override
  protected void doGet(HttpServletRequest request,
  HttpServetResponse response) throws ServletException,
  IOException {
       PrintWriter out = response.getWriter();
  ...




                                                     www.mgjug.com.br
As novidades do Java EE 6
  Como está no Servlet 3.0
Configurando um servlet utilizando os atributos value e initParams:
 @WebServlet(value="/hello“,
 initParams={@WebInitParam(name=“jug",value="mgjug")
 })
 public class HelloWorld extends HttpServlet {
  ...
Configurando várias url’s utilizando o atributo urlPatterns:

  @WebServlet(urlPatterns={"/hello","/hello2"})
  public class HelloWorld extends HttpServlet {
  ...

                   Lembre-se, não é possível ter ao
                   mesmo tempo os atributos value
                   e urlPatterns!                                www.mgjug.com.br
As novidades do Java EE 6
 Como está no Servlet 3.0

Outras annotations:
  @WebFilter;
  @WebListener;




                            www.mgjug.com.br
As novidades do Java EE 6
  Servlet 3.0: Modularização do web.xml
 Organização;
 Pode utilizar as mesmas tags do web.xml. Ex
  servlet,servlet-mapping, etc.;
 A ordem de carga dos web-fragments pode ser definida;
 Localização (META-INF ou WEB-INF/lib).


                   <web-fragment>
                     <name>Fragmento_A</name>
                   </web-fragment>

                   <web-fragment>
                     <name>Fragmento_B</name>
                   </web-fragment>

                       web-fragment.xml          www.mgjug.com.br
As novidades do Java EE 6
  Servlet 3.0 : Modularização do web.xml

 Definindo a ordenação no web.xml;


                  <absolute-ordering>

                  <name>Fragmento_B</name>

                  <name>Fragmento_A</name>

                  </absolute-ordering>

                             web.xml




                                             www.mgjug.com.br
As novidades do Java EE 6
  Servlet 3.0: Servlets em tempo de execução
 Interface ServletContext com novos métodos;
 Dispensa utilização de @WebServlet.

      try{
        ProgrammaticallyConfiguredServlet servlet = servletContext.
        createServlet(ProgrammaticallyConfiguredServlet.class);

      servletContext.addServlet("ProgrammaticallyConfiguredSer
      vlet“, servlet);
       ServletRegistration servletRegistration =
      servletContext.getServletRegistration( "ProgrammaticallyConfi
      guredServlet");

      servletRegistration.addMapping("/ProgrammaticallyConfigured
      Servlet");
      }catch (ServletException servletException){
       servletContext.log(servletException.getMessage());
      }

                                                                      www.mgjug.com.br
As novidades do Java EE 6
  Servlet 3.0: Asynchronous Processing

 Utilização de mais uma Thread por requisição;
 Libera thread para outras requisições;
 Configuração feita através do atributo asyncSupported =
  true.

       @WebServlet(name = "AsynchronousServlet", urlPatterns = {
       "/AsynchronousServlet"}, asyncSupported = true)




                                                            www.mgjug.com.br
Servlet 3.0
 Exemplo
  Prático




              www.mgjug.com.br
As novidades do Java EE 6
  JavaServer Faces (JSF2.0)

Facelets;
Faces-config.xml opcional;
Localização padrão de arquivos de
 recurso;
Suporte nativo à Ajax;




                                     www.mgjug.com.br
As novidades do Java EE 6
  JSF 2.0: Facelets
Novo padrão do JSF para camada de visão;
Versões antigas utilizavam JSP;
XHTML, ganho de desempenho (30% a
 50%);
Facilidade na criação e reutilização de
 templates;
Independende de web container;
Criação de componentes reutilizáveis.

                                     www.mgjug.com.br
As novidades do Java EE 6
 JSF 2.0: Facelets
Facelets x JSP

JSP é compilada, executada, produzido o
 html e enviado ao browser;
Facelets utiliza processo rápido de
 compilação SAX-parser e foi concebido
 respeitando o ciclo de vida da árvore de
 componentes do JSF.


                                    www.mgjug.com.br
As novidades do Java EE 6
  JSF 2.0: Facelets
JSP compilada
 public class _LOGIN extends com.orionserver.http.OrionHttpJspPage {
   
   // ** Begin Declarations
   // ** End Declarations
  
   public void _jspService(HttpServletRequest request, HttpServletResponse response) throws
 java.io.IOException, ServletException {
  
     response.setContentType( "text/html;charset=ISO-8859-1");
     /* set up the intrinsic variables using the pageContext goober:
     ** session = HttpSession
     ** application = ServletContext
     ** out = JspWriter
     ** page = this
     ** config = ServletConfig
     ** all session/app beans declared in globals.jsa
     */




                                                                                   www.mgjug.com.br
As novidades do Java EE 6
  JSF 2.0: Facelets
JSP compilada
 __jsp_tag_ctru0.setPageContext(pageContext);
      __jsp_tag_ctru0.setParent(null);
      __jsp_tag_starteval=__jsp_tag_ctru0.doStartTag();
      if (OracleJspRuntime.checkStartBodyTagEval(__jsp_tag_starteval))

 out.print(TelaPBAb.getWebRootApp(pageContext) +"/css/sicaf/sicaf.css" );
         __ojsp_s_out.write(__oracle_jsp_text[1]);
         out.print(TelaPBAb.getWebRootApp(pageContext)
 +"/css/sicaf/unifw.css" );
         __ojsp_s_out.write(__oracle_jsp_text[2]);

 __oracle_jsp_text[10] =
    "/js/sicaf/unifwMenuInit.js"></script>rn<script language="JavaScript1.2"
 fptype="dynamicanimation" src="".getBytes("ISO8859_1");




                                                                          www.mgjug.com.br
As novidades do Java EE 6
  JSF 2.0: Facelets
Customização / Reutilização de componentes


          < Cabeçalho omitido >


          <ui:component>
            <h:outputLabel for="#{id}" value="#{label}" />
            <h:inputText id="#{id}" value="#{value}" />
            <h:message for="#{id}" />
          </ui:component>




                        itemFormulario.hxtml


                                                             www.mgjug.com.br
As novidades do Java EE 6
  JSF 2.0: Facelets
Customização / Reutilização de componentes


      < Cabeçalho omitido >


      <facelet-taglib>
         <namespace>http://exemplo.com.br/jsf</namespace>
         <tag>
            <tag-name>itemFormulario</tag-name>
            <source>itemFormulario.xhtml</source>
         </tag>
      </facelet-taglib>

                          meuProjeto.taglib.xml

                                                        www.mgjug.com.br
As novidades do Java EE 6
  JSF 2.0: Facelets
Customização / Reutilização de componentes

  Registrando a Taglib



   < Cabeçalho omitido >

   <context-param>
     <param-name>facelets.LIBRARIES</param-name>
     <param-value>/WEB-INF/facelets/meuProjeto.taglib.xml</param-value>
   </context-param>



                                web.xml


                                                                   www.mgjug.com.br
As novidades do Java EE 6
  JSF 2.0: Facelets
Customização / Reutilização de componentes

  Utilização



 <html xmlns=http://www.w3.org/1999/xhtml
 xmlns:custom="http://exemplo.com.br/jsf">

 <body>
   <custom:itemFormulario id="username" label=“Login:"
 value="#{loginController.username}" />
 </body>


                                  minhaPagina.xhtml


                                                         www.mgjug.com.br
As novidades do Java EE 6
 JSF 2.0: Faces-config.xml opcional

 JSF 1.2
   • Definição de managed-bean;
   • Definição de regras de navegação.




                                  www.mgjug.com.br
As novidades do Java EE 6
 JSF 2.0: Faces-config.xml opcional
 <faces-config version="2.0"
 xmlns="http://java.sun.com/xml/ns/javaee"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation=http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-
 facesconfig_2_0.xsd>
 <managed-bean>
  <managed-bean-name>UsuarioManagedBean</managed-bean-name>
  <managed-bean-class>br.com.UsuarioManagedBean</managed-bean-class>
  <managed-bean-scope>request</managed-bean-scope>
 </managed-bean>
  <navigation-rule>
    <from-view-id>/index.xhtml</from-view-id>
    <navigation-case>
     <from-outcome>inserir</from-outcome>
     <to-view-id>/usuario/cadastrar.xhtml</to-view-id>
    </navigation-case>
  </navigation-rule>
 </faces-config>


                                                                               www.mgjug.com.br
As novidades do Java EE 6
 JSF 2.0: Faces-config.xml opcional

 JSF 2.0
   • Managed-bean anotado na própria
     classe;
   • Regras de navegação utilizam o
     nome do arquivo .xhtml (por default)
     através do action value (command
     link ou command button).


                                    www.mgjug.com.br
As novidades do Java EE 6
 JSF 2.0: Faces-config.xml opcional

   Classe

   @ManagedBean(name = "login")
   @RequestScoped
   public class LoginManagedBean {



  Arquivo .xhtml

  <h:commandButton action="usuario/cadastrar" value="Cadastrar" />



                                                          www.mgjug.com.br
As novidades do Java EE 6
 JSF 2.0: Localização padrão de arquivos de recurso

 Resources são artefatos que uma página
  JSF precisa para renderizar devidamente;
    CSS;
    Javascript;
    Imagens;
 Localização (Raíz ou dentro do META-INF).




                                        www.mgjug.com.br
As novidades do Java EE 6
 JSF 2.0: Localização padrão de arquivos de recurso

 Por exemplo, podemos colocar um arquivo de estilo chamado styles.css no caminho
                              /resources/css/styles.css.

 Em nossas páginas JSF, nós podemos chamá-lo usando a tag <h:outputStylesheet>:


            <h:outputStylesheet library="css" name="styles.css"/>


 O valor do atributo library deve ser equivalente ao subdiretório de resources, nesse caso,
 css.

 Exemplos para Javascript e Imagens:

           <h:outputStylesheet library="css" name="styles.css"/>

           <h:graphicImage library="images" name="logo.png"/>
                                                                           www.mgjug.com.br
JSF 2.0
Exemplo
 Prático




           www.mgjug.com.br
RIA – Rich Internet Application

 ZK Framework;
 Richfaces;
 Apache Trinidad;
 Icefaces;
 Primefaces;
 Vaadin.

                           www.mgjug.com.br
RIA
Exemplo
 Prático




           www.mgjug.com.br
Próximos passos




                  www.mgjug.com.br
Próximos passos
Comunidades virtuais
•http://www.portaljava.com
•http://www.guj.com.br

Grupos de usuários
•http://www.soujava.org.br
•http://www.mgjug.com.br
•http://www.rsjug.org
•http://www.dfjug.org

Cursos on-line
•http://jedi.wv.com.br
                             www.mgjug.com.br
Próximos passos
Download JDK
•http://www.oracle.com/technetwork/java/javase/d
ownloads/index.html

Download Netbeans IDE
•http://www.netbeans.org

Download Eclipse IDE
•http://www.eclipse.org




                                         www.mgjug.com.br
MGJUG
•   Divulgação de vagas de emprego;
•   Divulgação de eventos;
•   Dúvidas;
•   Novidades;


JUG Leader :
                                                           users-subscribe@mgjug.dev.java.net
Adriano de Pinho Tavares - adriano@mgjug.com.br

Coordenadores:
Daniel Felicíssimo Campos - daniel.felicissimo@gmail.com
Juarez Alvares Barbosa Junior - juarez.barbosa@gmail.com              + de 500
Marco Aurélio de Souza Mendes - corelio@gmail.com
Alcebíades Araujo - alcebiades.araujo@arkhi.com.br
                                                                      membros
Fabiano G. Souza - fabiano@gmail.com
Vinicius Carvalho - viniciusccarvalho@gmail.com


                                                                             www.mgjug.com.br
Perguntas?




             www.mgjug.com.br
Obrigado!




            www.mgjug.com.br

Uma abordagem ao Java EE 6

  • 1.
    Uma abordagem aoJava EE 6 Daniel Campos e Ernesto Oliveira
  • 2.
    Tópicos Abordados  JavaEE, o que é?;  Arquitetura MVC;  As novidades do Java EE 6;  RIA e exemplos práticos;  Próximos passos. www.mgjug.com.br
  • 3.
    JavaEE, o queé?  Conjunto de bibliotecas (API);  Padrão de desenvolvimento; Componentes modulares; Executada em um servidor:  Web container:  Tomcat.  Application Server:  Glassfish;  JbossAS. www.mgjug.com.br
  • 4.
  • 5.
    As novidades doJava EE 6 www.mgjug.com.br
  • 6.
    As novidades doJava EE 6 Servlet 3.0  Como é no Servlet 2.5;  Como está no Servlet 3.0;  Modularização do web.xml;  Servlets em tempo de execução;  Asynchronous Processing. www.mgjug.com.br
  • 7.
    As novidades doJava EE 6 Como é no Servlet 2.5  Declarações extensas no arquivo web.xml. <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns=“http://java.sun.com/xml/ns/javaee” xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance” xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd” version="2.5"> <display-name>Aplicação WEB</display-name> <servlet> <servlet-name>HelloWorld</servlet-name> <servlet-class>com.webapp. HelloWorld</servlet-class> </servlet> <servlet-mapping> <servlet-name>HelloWorld</servlet-name> <url-pattern>/hello</url-pattern> </servlet-mapping> </web-app> www.mgjug.com.br
  • 8.
    As novidades doJava EE 6 Como é no Servlet 2.5 public class HelloWorld extends HttpServlet { @Override protected void doGet(HttpServletRequest request, HttpServetResponse response) throws ServletException, IOException { PrintWriter out = response.getWriter(); out.println(“MGJUG"); } @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { } } www.mgjug.com.br
  • 9.
    As novidades doJava EE 6 Como está no Servlet 3.0  Uso de anotações (annotations) ao invés de XML. @WebServlet(“/hello”) public class HelloWorld extends HttpServlet { @Override protected void doGet(HttpServletRequest request, HttpServetResponse response) throws ServletException, IOException { PrintWriter out = response.getWriter(); ... www.mgjug.com.br
  • 10.
    As novidades doJava EE 6 Como está no Servlet 3.0 Configurando um servlet utilizando os atributos value e initParams: @WebServlet(value="/hello“, initParams={@WebInitParam(name=“jug",value="mgjug") }) public class HelloWorld extends HttpServlet { ... Configurando várias url’s utilizando o atributo urlPatterns: @WebServlet(urlPatterns={"/hello","/hello2"}) public class HelloWorld extends HttpServlet { ... Lembre-se, não é possível ter ao mesmo tempo os atributos value e urlPatterns! www.mgjug.com.br
  • 11.
    As novidades doJava EE 6 Como está no Servlet 3.0 Outras annotations: @WebFilter; @WebListener; www.mgjug.com.br
  • 12.
    As novidades doJava EE 6 Servlet 3.0: Modularização do web.xml  Organização;  Pode utilizar as mesmas tags do web.xml. Ex servlet,servlet-mapping, etc.;  A ordem de carga dos web-fragments pode ser definida;  Localização (META-INF ou WEB-INF/lib). <web-fragment> <name>Fragmento_A</name> </web-fragment> <web-fragment> <name>Fragmento_B</name> </web-fragment> web-fragment.xml www.mgjug.com.br
  • 13.
    As novidades doJava EE 6 Servlet 3.0 : Modularização do web.xml  Definindo a ordenação no web.xml; <absolute-ordering> <name>Fragmento_B</name> <name>Fragmento_A</name> </absolute-ordering> web.xml www.mgjug.com.br
  • 14.
    As novidades doJava EE 6 Servlet 3.0: Servlets em tempo de execução  Interface ServletContext com novos métodos;  Dispensa utilização de @WebServlet. try{ ProgrammaticallyConfiguredServlet servlet = servletContext. createServlet(ProgrammaticallyConfiguredServlet.class); servletContext.addServlet("ProgrammaticallyConfiguredSer vlet“, servlet); ServletRegistration servletRegistration = servletContext.getServletRegistration( "ProgrammaticallyConfi guredServlet"); servletRegistration.addMapping("/ProgrammaticallyConfigured Servlet"); }catch (ServletException servletException){ servletContext.log(servletException.getMessage()); } www.mgjug.com.br
  • 15.
    As novidades doJava EE 6 Servlet 3.0: Asynchronous Processing  Utilização de mais uma Thread por requisição;  Libera thread para outras requisições;  Configuração feita através do atributo asyncSupported = true. @WebServlet(name = "AsynchronousServlet", urlPatterns = { "/AsynchronousServlet"}, asyncSupported = true) www.mgjug.com.br
  • 16.
    Servlet 3.0 Exemplo Prático www.mgjug.com.br
  • 17.
    As novidades doJava EE 6 JavaServer Faces (JSF2.0) Facelets; Faces-config.xml opcional; Localização padrão de arquivos de recurso; Suporte nativo à Ajax; www.mgjug.com.br
  • 18.
    As novidades doJava EE 6 JSF 2.0: Facelets Novo padrão do JSF para camada de visão; Versões antigas utilizavam JSP; XHTML, ganho de desempenho (30% a 50%); Facilidade na criação e reutilização de templates; Independende de web container; Criação de componentes reutilizáveis. www.mgjug.com.br
  • 19.
    As novidades doJava EE 6 JSF 2.0: Facelets Facelets x JSP JSP é compilada, executada, produzido o html e enviado ao browser; Facelets utiliza processo rápido de compilação SAX-parser e foi concebido respeitando o ciclo de vida da árvore de componentes do JSF. www.mgjug.com.br
  • 20.
    As novidades doJava EE 6 JSF 2.0: Facelets JSP compilada public class _LOGIN extends com.orionserver.http.OrionHttpJspPage {    // ** Begin Declarations // ** End Declarations   public void _jspService(HttpServletRequest request, HttpServletResponse response) throws java.io.IOException, ServletException {   response.setContentType( "text/html;charset=ISO-8859-1"); /* set up the intrinsic variables using the pageContext goober: ** session = HttpSession ** application = ServletContext ** out = JspWriter ** page = this ** config = ServletConfig ** all session/app beans declared in globals.jsa */ www.mgjug.com.br
  • 21.
    As novidades doJava EE 6 JSF 2.0: Facelets JSP compilada __jsp_tag_ctru0.setPageContext(pageContext); __jsp_tag_ctru0.setParent(null); __jsp_tag_starteval=__jsp_tag_ctru0.doStartTag(); if (OracleJspRuntime.checkStartBodyTagEval(__jsp_tag_starteval)) out.print(TelaPBAb.getWebRootApp(pageContext) +"/css/sicaf/sicaf.css" ); __ojsp_s_out.write(__oracle_jsp_text[1]); out.print(TelaPBAb.getWebRootApp(pageContext) +"/css/sicaf/unifw.css" ); __ojsp_s_out.write(__oracle_jsp_text[2]); __oracle_jsp_text[10] = "/js/sicaf/unifwMenuInit.js"></script>rn<script language="JavaScript1.2" fptype="dynamicanimation" src="".getBytes("ISO8859_1"); www.mgjug.com.br
  • 22.
    As novidades doJava EE 6 JSF 2.0: Facelets Customização / Reutilização de componentes < Cabeçalho omitido > <ui:component> <h:outputLabel for="#{id}" value="#{label}" /> <h:inputText id="#{id}" value="#{value}" /> <h:message for="#{id}" /> </ui:component> itemFormulario.hxtml www.mgjug.com.br
  • 23.
    As novidades doJava EE 6 JSF 2.0: Facelets Customização / Reutilização de componentes < Cabeçalho omitido > <facelet-taglib> <namespace>http://exemplo.com.br/jsf</namespace> <tag> <tag-name>itemFormulario</tag-name> <source>itemFormulario.xhtml</source> </tag> </facelet-taglib> meuProjeto.taglib.xml www.mgjug.com.br
  • 24.
    As novidades doJava EE 6 JSF 2.0: Facelets Customização / Reutilização de componentes Registrando a Taglib < Cabeçalho omitido > <context-param> <param-name>facelets.LIBRARIES</param-name> <param-value>/WEB-INF/facelets/meuProjeto.taglib.xml</param-value> </context-param> web.xml www.mgjug.com.br
  • 25.
    As novidades doJava EE 6 JSF 2.0: Facelets Customização / Reutilização de componentes Utilização <html xmlns=http://www.w3.org/1999/xhtml xmlns:custom="http://exemplo.com.br/jsf"> <body> <custom:itemFormulario id="username" label=“Login:" value="#{loginController.username}" /> </body> minhaPagina.xhtml www.mgjug.com.br
  • 26.
    As novidades doJava EE 6 JSF 2.0: Faces-config.xml opcional JSF 1.2 • Definição de managed-bean; • Definição de regras de navegação. www.mgjug.com.br
  • 27.
    As novidades doJava EE 6 JSF 2.0: Faces-config.xml opcional <faces-config version="2.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web- facesconfig_2_0.xsd> <managed-bean> <managed-bean-name>UsuarioManagedBean</managed-bean-name> <managed-bean-class>br.com.UsuarioManagedBean</managed-bean-class> <managed-bean-scope>request</managed-bean-scope> </managed-bean> <navigation-rule> <from-view-id>/index.xhtml</from-view-id> <navigation-case> <from-outcome>inserir</from-outcome> <to-view-id>/usuario/cadastrar.xhtml</to-view-id> </navigation-case> </navigation-rule> </faces-config> www.mgjug.com.br
  • 28.
    As novidades doJava EE 6 JSF 2.0: Faces-config.xml opcional JSF 2.0 • Managed-bean anotado na própria classe; • Regras de navegação utilizam o nome do arquivo .xhtml (por default) através do action value (command link ou command button). www.mgjug.com.br
  • 29.
    As novidades doJava EE 6 JSF 2.0: Faces-config.xml opcional Classe @ManagedBean(name = "login") @RequestScoped public class LoginManagedBean { Arquivo .xhtml <h:commandButton action="usuario/cadastrar" value="Cadastrar" /> www.mgjug.com.br
  • 30.
    As novidades doJava EE 6 JSF 2.0: Localização padrão de arquivos de recurso Resources são artefatos que uma página JSF precisa para renderizar devidamente;  CSS;  Javascript;  Imagens; Localização (Raíz ou dentro do META-INF). www.mgjug.com.br
  • 31.
    As novidades doJava EE 6 JSF 2.0: Localização padrão de arquivos de recurso Por exemplo, podemos colocar um arquivo de estilo chamado styles.css no caminho /resources/css/styles.css. Em nossas páginas JSF, nós podemos chamá-lo usando a tag <h:outputStylesheet>: <h:outputStylesheet library="css" name="styles.css"/> O valor do atributo library deve ser equivalente ao subdiretório de resources, nesse caso, css. Exemplos para Javascript e Imagens: <h:outputStylesheet library="css" name="styles.css"/> <h:graphicImage library="images" name="logo.png"/> www.mgjug.com.br
  • 32.
    JSF 2.0 Exemplo Prático www.mgjug.com.br
  • 33.
    RIA – RichInternet Application ZK Framework; Richfaces; Apache Trinidad; Icefaces; Primefaces; Vaadin. www.mgjug.com.br
  • 34.
    RIA Exemplo Prático www.mgjug.com.br
  • 35.
    Próximos passos www.mgjug.com.br
  • 36.
    Próximos passos Comunidades virtuais •http://www.portaljava.com •http://www.guj.com.br Gruposde usuários •http://www.soujava.org.br •http://www.mgjug.com.br •http://www.rsjug.org •http://www.dfjug.org Cursos on-line •http://jedi.wv.com.br www.mgjug.com.br
  • 37.
    Próximos passos Download JDK •http://www.oracle.com/technetwork/java/javase/d ownloads/index.html DownloadNetbeans IDE •http://www.netbeans.org Download Eclipse IDE •http://www.eclipse.org www.mgjug.com.br
  • 38.
    MGJUG • Divulgação de vagas de emprego; • Divulgação de eventos; • Dúvidas; • Novidades; JUG Leader : users-subscribe@mgjug.dev.java.net Adriano de Pinho Tavares - adriano@mgjug.com.br Coordenadores: Daniel Felicíssimo Campos - daniel.felicissimo@gmail.com Juarez Alvares Barbosa Junior - juarez.barbosa@gmail.com + de 500 Marco Aurélio de Souza Mendes - corelio@gmail.com Alcebíades Araujo - alcebiades.araujo@arkhi.com.br membros Fabiano G. Souza - fabiano@gmail.com Vinicius Carvalho - viniciusccarvalho@gmail.com www.mgjug.com.br
  • 39.
    Perguntas? www.mgjug.com.br
  • 40.
    Obrigado! www.mgjug.com.br