SlideShare uma empresa Scribd logo
Integrando Ext JS 4 com Java EE
Diferentes Frameworks: Prós e Contras
  e alguns cuidados que devemos ter

            Loiane Groner
               @loiane
          http://loiane.com
Loiane Groner

Apaixonada por Java e
Sencha

7+ XP Java
4+ XP Sencha

Software Development
Manager @ Citibank

@loiane
http://loiane.com
http://www.dfjug.org/
      amigos.jsp
Ext JS 4
sencha.com
Cross-Browser
Alguns Exemplos
Fácil
Integração
Fácil
Integração
Fácil
Integração
Fácil
Integração
Construindo
Aplicações Ext JS 4
Como
 Organizar
um Projeto
    JS?
Incluir JS em cada jsp?
Incluir JS em cada jsp?

    listarCliente.jsp
<script> listarCliente.js?
Incluir JS em cada jsp?

    listarCliente.jsp
<script> listarCliente.js?

 Não é assim em Ext JS!
Projeto Java + Ext JS

 1 index.jsp apenas
Projeto Java + Ext JS

  1 index.jsp apenas


Ext JS também usa MVC
MVC
Código precisa ser organizado

Boas práticas precisam ser seguidas

        Fácil manutenção

     Fácil trabalho em equipe
Model
Ext JS
Carrega e Gerencia dados da app

  Dados dos requests da View
Java
           POJO

Representa entidade banco de
           dados
Javaone Brazil 2012: Integrando Ext JS 4 com Java EE
View
Ext JS
Gerencia dados na View

   Componentes UI
Java

             JSP
Ext JS assume responsabilidade
Java

             JSP
Ext JS assume responsabilidade
    MVC dentro de MVC!!!
Javaone Brazil 2012: Integrando Ext JS 4 com Java EE
Javaone Brazil 2012: Integrando Ext JS 4 com Java EE
Controller
Javaone Brazil 2012: Integrando Ext JS 4 com Java EE
Ext JS
Gerencia inputs do usuário

  Atualiza Model e View
Java
 Gerencia requests da view...

 Enviar request pro Serviço
         (opcional)...

Retorna response para a View
Java
 Gerencia requests da view...

 Enviar request pro Serviço
         (opcional)...

Retorna response para a View

      View == Ext JS
DAO
Java

     Classe DAO

Comunicação com Banco

Hibernate, JPA ou outro
Ext JS
Não comunica com bando de dados

   Stores - Coleção de Models

 Proxies - comunica com Server
Arquitetura

Ext JS 4 + Java
Javaone Brazil 2012: Integrando Ext JS 4 com Java EE
Comunicação
Ext JS <-> Java
Servlets
 	
  	
  	
  	
  	
  	
  	
  //get	
  out	
  Grid	
  paging	
  toolbar	
  parameters
	
  	
  	
  	
  	
  	
  	
  	
  String	
  start	
  =	
  request.getParameter("start");
	
  	
  	
  	
  	
  	
  	
  	
  String	
  limit	
  =	
  request.getParameter("limit");
 	
  	
  	
  	
  	
  	
  	
  //get	
  out	
  Grid	
  paging	
  toolbar	
  parameters
	
  	
  	
  	
  	
  	
  	
  	
  String	
  start	
  =	
  request.getParameter("start");
	
  	
  	
  	
  	
  	
  	
  	
  String	
  limit	
  =	
  request.getParameter("limit");



	
  	
  	
  	
  	
  	
  	
  	
  //printwriter	
  to	
  send	
  the	
  JSON	
  response	
  back
	
  	
  	
  	
  	
  	
  	
  	
  PrintWriter	
  out	
  =	
  response.getWriter();
	
  	
  	
  	
  	
  	
  	
  	
  //set	
  content	
  type
	
  	
  	
  	
  	
  	
  	
  	
  response.setContentType("text/html");
 	
  	
  	
  	
  	
  	
  	
  //Create	
  a	
  JSON	
  object	
  to	
  wrap	
  your	
  JSOn	
  array
	
  	
  	
  	
  	
  	
  	
  	
  JSONObject	
  myObj	
  =	
  new	
  JSONObject();
	
  	
  	
  	
  	
  	
  	
  	
  //sets	
  success	
  to	
  true
	
  	
  	
  	
  	
  	
  	
  	
  myObj.put("success",	
  true);
	
  	
  	
  	
  	
  	
  	
  	
  //set	
  the	
  JSON	
  root	
  to	
  items
	
  	
  	
  	
  	
  	
  	
  	
  myObj.put("root",	
  arrayObj);
	
  	
  	
  	
  	
  	
  	
  	
  //set	
  the	
  total	
  number	
  of	
  Items
	
  	
  	
  	
  	
  	
  	
  	
  myObj.put("total",	
  itemInformation.getTotalCount());
	
  
	
  	
  	
  	
  	
  	
  	
  	
  //convert	
  the	
  JSON	
  object	
  to	
  string	
  and	
  send	
  the	
  response
	
  	
  	
  	
  	
  	
  	
  	
  out.println(myObj.toString());
	
  	
  	
  	
  	
  	
  	
  	
  out.close();
WebSockets
 Java EE 7
Arun Gupta Talk
http://www.slideshare.net/arungupta1/websocket-10
Arun Gupta Talk
http://www.slideshare.net/arungupta1/websocket-10
Jax-RS
Javaone Brazil 2012: Integrando Ext JS 4 com Java EE
VRaptor
 	
  	
  public	
  void	
  list()	
  {
	
   	
   result.use(ExtJSJson.class).from(this.contactDao.list())
                .success(true).serialize();
	
   }
@Post
	   @Consumes("application/json")
	   public void create(Contact data){

	   	   this.contactDao.create(data);

	   	   result.use(ExtJSJson.class).from(data)
         .success(true).serialize();
	   }
ExtJSJon.class
ExtJSJon.class

Apenas para Grid e Tree!
Spring 2.5
<bean	
  name="jsonView"	
  
class="net.sf.json.spring.web.servlet.view.JsonView"	
  />
 	
  	
  	
  	
  public	
  ModelAndView	
  handleRequest(HttpServletRequest	
  request,
	
   	
   	
   HttpServletResponse	
  response)	
  throws	
  Exception	
  {

	
     	
     //obtém	
  o	
  parâmetro	
  de	
  início
	
     	
     String	
  iniParam	
  =	
  request.getParameter("start");
	
     	
     int	
  inicio	
  =	
  (iniParam	
  ==	
  null)	
  ?	
  0	
  :	
  Integer.parseInt(iniParam);

	
     	
     //gera	
  os	
  contatos
	
     	
     List<Contato>	
  contatos	
  =	
  GerenciaContatos.getJson(inicio);

	
     	
     Map<String,Object>	
  modelMap	
  =	
  new	
  HashMap<String,Object>(2);
	
     	
     modelMap.put("total",	
  GerenciaContatos.LIMITE);
	
     	
     modelMap.put("rows",	
  contatos);

	
     	
     return	
  new	
  ModelAndView("jsonView",	
  modelMap);

	
     }
Spring 3.x
@RequestMapping(value="/contact/view.action")
	
     public	
  @ResponseBody	
  Map<String,?	
  extends	
  Object>	
  
           view(@RequestParam	
  int	
  start,	
  @RequestParam	
  int	
  limit)	
  throws	
  Exception	
  {

	
     	
     try{

	
     	
     	
     List<Contact>	
  contacts	
  =	
  contactService.getContactList(start,limit);

	
     	
     	
     int	
  total	
  =	
  contactService.getTotalContacts();

	
     	
     	
     return	
  ExtJSReturn.mapOK(contacts,	
  total);

	
     	
     }	
  catch	
  (Exception	
  e)	
  {

	
     	
     	
     return	
  ExtJSReturn.mapError("Error	
  retrieving	
  Contacts	
  from	
  database.");
	
     	
     }
	
     }
 	
  	
  public	
  static	
  Map<String,Object>	
  mapOK(List<Contact>	
  contacts){

	
     	
     Map<String,Object>	
  modelMap	
  =	
  new	
  HashMap<String,Object>(3);
	
     	
     modelMap.put("total",	
  contacts.size());
	
     	
     modelMap.put("data",	
  contacts);
	
     	
     modelMap.put("success",	
  true);

	
     	
     return	
  modelMap;
	
     }
Alguns Cuidados
Forms
Upload de Arquivos
  (Ajax Request)
Leitura de
Nested Models
(Associations)
Envio (server) de
 Nested Models
 (Associations)
Comunicação
Cross-Browser
Ajax?
JSON-P?
WebServices - Ext JS?
WebServices - Ext JS?




   $21,950
WebServices - Ext JS?




   $21,950   #Fail!
WebServices - Java
Sencha Touch
Javaone Brazil 2012: Integrando Ext JS 4 com Java EE
.

               .
Views                      Views
               .
          Controllers
            Models
            Stores
            Proxies

        Servidor == Java
              on
              n
Conclusão
@loiane
http://loiane.com
github.com/loiane
Javaone Brazil 2012: Integrando Ext JS 4 com Java EE

Mais conteúdo relacionado

PDF
Persistência Java: Hibernate e JPA
PDF
Integração com Banco de Dados
PDF
Artigoajax
PDF
Java Web 4 - Servlets e JSP 2
PDF
Persistência com JPA usando o NetBeans 7
PDF
Fundamentos de JDBC
PDF
Tutorial +login+mvc
PDF
Introdução ao JPA com Hibernate
Persistência Java: Hibernate e JPA
Integração com Banco de Dados
Artigoajax
Java Web 4 - Servlets e JSP 2
Persistência com JPA usando o NetBeans 7
Fundamentos de JDBC
Tutorial +login+mvc
Introdução ao JPA com Hibernate

Mais procurados (20)

PDF
POO - 21 - Java e Banco de Dados
PDF
Wicket 2008
PDF
JPA com Hibernate
PDF
Java Web 5 - JSP, Expression Language e Taglibs
PDF
Java Web 3 - Servlets e JSP 1
PPT
JPA - Java Persistence API
PDF
Spring Data Jpa
PPT
Introdução a JPA e Hibernate - TDC 2012
KEY
Javascript - Princípios da linguagem e utilização de frameworks
PDF
Java Web - MVC básico com JSP e Servlets
PDF
Web 2.0 e AJAX - Parte 2 / 3
PDF
Java web 6 JSP Expression Language Taglib parte 2
PDF
Node.js - #6 - Core Modules - net - Rodrigo Branas
PDF
Apostilava Java EE 5 - 2007
PPTX
Boas práticas com jpa 2 e hibernate flisol 2012
PDF
Java EE 6 JPA 2.0, EJB 3.1 e CDI 1.0
PDF
Jdbc, JAVA DATABASE CONNECTIVITY
PPT
Frameworks Ajax
PDF
Ajax em java
PPT
Jpa – Java Persistence Api
POO - 21 - Java e Banco de Dados
Wicket 2008
JPA com Hibernate
Java Web 5 - JSP, Expression Language e Taglibs
Java Web 3 - Servlets e JSP 1
JPA - Java Persistence API
Spring Data Jpa
Introdução a JPA e Hibernate - TDC 2012
Javascript - Princípios da linguagem e utilização de frameworks
Java Web - MVC básico com JSP e Servlets
Web 2.0 e AJAX - Parte 2 / 3
Java web 6 JSP Expression Language Taglib parte 2
Node.js - #6 - Core Modules - net - Rodrigo Branas
Apostilava Java EE 5 - 2007
Boas práticas com jpa 2 e hibernate flisol 2012
Java EE 6 JPA 2.0, EJB 3.1 e CDI 1.0
Jdbc, JAVA DATABASE CONNECTIVITY
Frameworks Ajax
Ajax em java
Jpa – Java Persistence Api
Anúncio

Semelhante a Javaone Brazil 2012: Integrando Ext JS 4 com Java EE (20)

PDF
Ajax de primeira com ExtJS + JSON no seu projeto Spring
PDF
Primeiros passos com o framework Sencha Ext JS
PPTX
ExtJS - Jumpstart para o Grupo DevRioClaro
PDF
Aprendendo a arquitetura e novidades do ExtJS 4.2
ODP
Django + extjs pelos forms
PDF
Justjava 2012: REST Com Jax-RS e ExtJS 4
PDF
JSF & REST
ODP
Java mais ágil que nunca no desenvolvimento Web
PPT
Dwrsecomp
ODP
Apps Web em Wicket e Scala no GlassFish Java EE 6
PDF
Caelum java-web-fj21
PDF
JSF com Primefaces
PDF
QCon 2015 - Combinando AngularJS com Java EE
PDF
TDC2012: Apps RIA com Sencha GXT 3 e GWT
PPTX
HTTP, JSON, REST e AJAX com AngularJS
PDF
TDC 2011 - Ext JS 4
PDF
GUJavaSC - Combinando AngularJS com Java EE
ODP
Tw Course Ajax 2007 Ap05
KEY
Spring MVC - QConSP
PDF
Model View Controller
Ajax de primeira com ExtJS + JSON no seu projeto Spring
Primeiros passos com o framework Sencha Ext JS
ExtJS - Jumpstart para o Grupo DevRioClaro
Aprendendo a arquitetura e novidades do ExtJS 4.2
Django + extjs pelos forms
Justjava 2012: REST Com Jax-RS e ExtJS 4
JSF & REST
Java mais ágil que nunca no desenvolvimento Web
Dwrsecomp
Apps Web em Wicket e Scala no GlassFish Java EE 6
Caelum java-web-fj21
JSF com Primefaces
QCon 2015 - Combinando AngularJS com Java EE
TDC2012: Apps RIA com Sencha GXT 3 e GWT
HTTP, JSON, REST e AJAX com AngularJS
TDC 2011 - Ext JS 4
GUJavaSC - Combinando AngularJS com Java EE
Tw Course Ajax 2007 Ap05
Spring MVC - QConSP
Model View Controller
Anúncio

Último (20)

PDF
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
PPTX
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
PPTX
Aula sobre desenvolvimento de aplicativos
PPTX
Curso de Java 17 - (JEE (Sessões e Cookies)).pptx
PPTX
Curso de Java 13 - (JavaEE (JSP e Servlets)).pptx
PDF
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
PPTX
Curso de Java 15 - (Uso de Servlets (Entendendo a Estrutura)).pptx
PDF
COBITxITIL-Entenda as diferença em uso governança TI
PPTX
Curso de Java 11 - (Serializable (Serialização de Objetos)).pptx
PPTX
Curso de Java 12 - (JDBC, Transation, Commit e Rollback).pptx
PDF
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
PPTX
Curso de Java 9 - (Threads) Multitarefas.pptx
PDF
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
PDF
Processos na gestão de transportes, TM100 Col18
PPTX
Émile Durkheim slide elaborado muito bom
PPTX
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
PPTX
Curso de Java 14 - (Explicações Adicionais (Classes Abstrata e Interface)).pptx
PPTX
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
PDF
Apple Pippin Uma breve introdução. - David Glotz
PPTX
Curso de Java 16 - (JEE (Utilizando o Padrão MVC)).pptx
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
Aula sobre desenvolvimento de aplicativos
Curso de Java 17 - (JEE (Sessões e Cookies)).pptx
Curso de Java 13 - (JavaEE (JSP e Servlets)).pptx
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
Curso de Java 15 - (Uso de Servlets (Entendendo a Estrutura)).pptx
COBITxITIL-Entenda as diferença em uso governança TI
Curso de Java 11 - (Serializable (Serialização de Objetos)).pptx
Curso de Java 12 - (JDBC, Transation, Commit e Rollback).pptx
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
Curso de Java 9 - (Threads) Multitarefas.pptx
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
Processos na gestão de transportes, TM100 Col18
Émile Durkheim slide elaborado muito bom
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
Curso de Java 14 - (Explicações Adicionais (Classes Abstrata e Interface)).pptx
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
Apple Pippin Uma breve introdução. - David Glotz
Curso de Java 16 - (JEE (Utilizando o Padrão MVC)).pptx

Javaone Brazil 2012: Integrando Ext JS 4 com Java EE