EXTJS Java

28 respostas
D

Boa tarde,

To precisando de uma ajuda para resolver um probleminha.
Gostaria de integrar ExtJS com algum framework MVC em java, para isso preciso que este framework me retorne respostas no formato JSON, gostaria de saber se alguem já fez isso com algum framework, ou se alguem já desenvolvel alguma aplicação java com JSON, se sim qual padrão deveria utilizar e qual lib utilizar para gerar tals respostas?

Obrigado.

28 Respostas

R

Opa…
O VRaptor retorna em JSON…
por exemplo você quer retornar uma list

@Remotable
public List getLista()
{
//
}
D

Hum…

Muito interassante !!!

Se alguem tiver mais sugestoes eu agradeço!

Obrigado!

abraços!!

B

Uma opção é Struts 2 + jsonplugin

D

Justamente o que eu estava tentando, mas to tendo dificuldades em capturar o retorno da action.
Tentei fazer igual ao exemplo abaixo mas nao ta dando certo:
http://cwiki.apache.org/S2PLUGINS/json-plugin.html

Você nao tem nenhum exemplo para me enviar?

Grato.

att.
Diego

A

opa ExtJS + DWR é perfeito!!! é só usar é verá o callback trazendo perfeitamente totalmente ajax!

V

kra estou usando servlets do lado servidor entao us uma api jsonic para criar os json, estou gostando de fazer este esquema, mas nao sei se e o melhor jeito

D

Bacana!!

Achei sua idéia bacana.

Agora uma questão que estava pensando, utilizando ExtJS nao tem porque utilizar Struts ou qualquer outro framework MVC, afinal acho que nao faz sentido utilizar este padrão junto com ExtJS.

Tipo, vc pode fazer tua aplicação toda utilizando ExtJS com DWR somente por exemplo, sem utilizar nenhum framework MVC.

Isso seria certo, ou tem algum padrao específico para trabalhar com ExtJS?

abraço.

V

nao sei te responder isso, mas o extjs como voce ja sabe ele client side entao desde que voce passe json pra ele o resto ele faz, agora para desenvolver uma aplicacao legal voce tem que preocupar com o lado do servidor, nao sei qual servidor web voce vai usar. Eu estou ultilizando o tomcat, porem terei que aprender todos os macete dele primeiro antes de comecar a colocar a aplicacao para funcionar, como JNDI pool de conexoes etc…

espero ter ajudado =)

R

Não sei se isso te ajuda, mas da uma olhada nesse link http://www.rodrigolazoti.com.br/?p=17

Não tenho acompanhado o desenvolvimento desta lib e não sei como anda atualmente, mas quem sabe pode te ajudar de alguma forma. :wink:

[]'s

D

Tentei utilizar este projeto mas ele possui alguns bugs nos arquivos tld, se vc olhar no post, todo mundo que tentou usa-lo nao obteve sucesso.

Mas obrigado pela iniciativa.

abraço.

R

Desenvolvi um projeto usando ExtJS+ Mentawai + Hibernate, o qual se deram muito bem…

Usei nesse caso a EXT só para a View, para dar uma interface com o usuário mais rica e interativa, e a troca de dados era em JSON.

Usando o modelo MVC, vai me permitir integrar esse sistema com outras tecnologias como J2ME, onde eu apenas vou fazer os formularios e as requisições usando HTTP
e usando os dados como JSON… (essa é uma das vantagens em se desenvolver usando padões)

Hoje a ExtJS pode ser usada para construir uma aplicação completa, inclusive DESKTOP e acessando o banco de dados…
O problema é que programar em JavaScript a meu ver é um saco…

Quem ficar interessado: http://extjs.com/blog/2007/06/29/building-a-desktop-application-with-ext-air-aptana-and-red-bull/

D

Bacana demais !!

Mas o que vc utilizava para gerar as respostas no formato JSON na sua camada de negócios?

R

Eu usei a JSON-Lib http://json-lib.sourceforge.net/, que já vem nas LIBs do mentawai.
O menta já tem um chamado JSONGenericRender, converte um List, Map ou Bean para JSON.

Mas por causa do Hibernate eu tive que fazer as conversões manuais mesmo, pois tava dando uns erros…

Boa sorte no seu projeto.

A

Gente,

Desculpem desenterrar esse tópico, mas estava fazendo várias pesquisas sobre EXT, JAVA e JSon.
Como este tópico é um dos primeiros trazidos pelo google em língua portuguesa sobre o assunto, estou contribuindo aqui.
Acabei encontrando estas pérolas, que gostaria de indicar:

http://extjs.com.br/forum/index.php?topic=976.0

Espero ter ajudado os colegas que pesquisarão sobre este tema no futuro.

A

pessoal não tem erro!! Extjs + Java e JSON é DWR Puro!!!

Mozelinha com DWR :smiley:

L

Uma duvida voces usam a licença comercial ou open source? vale a pena a comercial?

L

Uso a free para meus projetos pessoais.
Se vc for fazer um projeto comercial e não quiser compartilhar o código, aí vc precisa comprar a licença. Geralmente as empresas compram, já que tem suporte tb.
No meu trampo usamos com licença.

C

[color=darkblue] Gente estou com uma duvida cruel, estou tentando usar o Ext js (versão free) no meu projeto Struts 2 , porem quando coloco a pasta do Ext no Webcontent dá um erro em todas as minhas jsp e fica validando todos o js. Alguem sabe me dizer quais os arquivos que coloco no webcontent e se tem alguma outra configuração a ser feita?
Aguardo :slight_smile: [/color]

L

carmemvillegas:
[color=darkblue] Gente estou com uma duvida cruel, estou tentando usar o Ext js (versão free) no meu projeto Struts 2 , porem quando coloco a pasta do Ext no Webcontent dá um erro em todas as minhas jsp e fica validando todos o js. Alguem sabe me dizer quais os arquivos que coloco no webcontent e se tem alguma outra configuração a ser feita?
Aguardo :slight_smile: [/color]

Oi carmem, dá uma olhada no meu blog na aula 02 do curso que eu explico pra que serve cada arquivo e quais os necessários para implementar um projeto! :slight_smile:

F

Alguem ja desenvolveu aplicações reais com ExJ4 com algum framework action base? Gostaria muito de trocar ideias…
Estou muito interessado no assunto…

L

FernandoFranzini:
Alguem ja desenvolveu aplicações reais com ExJ4 com algum framework action base? Gostaria muito de trocar ideias…
Estou muito interessado no assunto…

Eu já fiz algumas aplicações reais com extjs4 e Spring MVC.

O que precisa saber?

T

Use servlets e http://code.google.com/p/google-gson/

final Map<String, Object> json = new HashMap<String, Object>();
json.put("minhaVeriavel", "meu valor");

response.setContentType("application/json");
response.setCharacterEncoding("UTF-8");

final Gson gson = new Gson();
response.getWriter().write(gson.toJson(json));
F

Bom dia Loiane

Eu gostaria de começar um projeto piloto com ExtJ e validar uma arquitetura para produção. Venho tendo experiencias bem ruins com JSF e gostei muito da qualidade do ExtJ.

Andei vendo que existe um conector Java chamados Ext.Direc mas não achei muita documentação. Gostaria de saber quais são as opções de uso.

  1. Eu vi que é possivel usar com SpringMVC, VRaptor, DWR, directjngine e extdirectspring. Qual vc em usado? Comentários de cada um deles?
  2. Vc ja colocou esse produtos em produção? Quais foram as maiores dificuldades?
  3. Eles quebram muito a compatibilidade entre a evoluções das versões? Tenho muito receio com esse tipo coisa…
  4. O seu livro aborda o uso de algum framework MVC deles?
L

FernandoFranzini:
Bom dia Loiane

Eu gostaria de começar um projeto piloto com ExtJ e validar uma arquitetura para produção. Venho tendo experiencias bem ruins com JSF e gostei muito da qualidade do ExtJ.

Andei vendo que existe um conector Java chamados Ext.Direc mas não achei muita documentação. Gostaria de saber quais são as opções de uso.

  1. Eu vi que é possivel usar com SpringMVC, VRaptor, DWR, directjngine e extdirectspring. Qual vc em usado? Comentários de cada um deles?
  2. Vc ja colocou esse produtos em produção? Quais foram as maiores dificuldades?
  3. Eles quebram muito a compatibilidade entre a evoluções das versões? Tenho muito receio com esse tipo coisa…
  4. O seu livro aborda o uso de algum framework MVC deles?

Oi Fernando, o Ext.Direct é uma ferramenta dentro do ExtJS. Com ele, você vai programar quase tudo dentro do seu código servidor. Eu particularmente não sei de ninguém aqui no Brasil que esteja usando ele, e também não recomendo, justamente pq fica fica obrigado a comprar a licença e por questão de compatibilidade entre versões.

Já deu uma olhada na api padrão do ExtJS? Os componentes conversam com o Java através de JSON ou XML, e aí é mt fácil usar SpringMVC, VRaptor, Struts ou qualquer outro framework de sua escolha. A partir da versão 4 existem muitas mudanças, mas agora que a arquitetura do framework está definida, a questão entre uma versão e outra será de correção de bugs e novas funcionalidades somente. A Sencha também se preocupa muita em ser compatível com versões.

No meu livro apenas abordo as mudanças entre a versão 3 e 4. Se tiver interesse, dê uma olhada no meu blog, tem vários exemplos com SpringMVC e até VRaptor. Tem um curso gratuito também se tiver interessado.

Eu virei muito fã do ExtJS depois que trabalhei para um cliente americano. Eles fizeram um sistema bem grande com ExtJS e SpringMVC e ficou bem legal.

No caso, você pode usar a arquitetura MVC do ExtJS 4 no frontend e no backend você pode usar os frameworks Java que vc quiser.

Aqui tem um exemplo bem básico: https://github.com/loiane/cafe-com-tom-extjs4 que dá pra vc ter uma idéia do que pode fazer. E se quiser ainda integrar com Spring Security, por exemplo, fica bem simples de fazer tb.

F

Ola Loiane

Eu tb estou virando fã do extj. Mas vamos ver aonde vai dar isso.
Já estou lendo a documentação oficial…tb estou vendo todas as suas videos aulas e já gostaria e dar parabéns pelo ótimo trabalho e qualidade do material.

Entendi sobre o Ext.Direct…vou deixar de lado. Ja estou vendo um framework Java MVC “action-like” para usar. Me parece o VRaptor é oq vou acabar usando…integração com Spring, Bean Validator, Brazuca e bem facil.

Minhas preocupações agora são:

  • trabalhar com extj da mesma forma que eu trabalho com Swing…fazer classes visuais GUI extj visando reutilização e manutenção centralizada ao invés de espalhar o código das construções em vários lugares?
  • padrão de codificação JS. Como organizar o código das GUJ exts?
  • gerenciamento de memoria dentro dos navegadores, uma vez que agora o estado da soluções ficam todos no DOM vindouras do server side via json. Existe praticas para liberar memoria dos gastos do objetos no DOM? É possível faltar memoria no navegador em soluções com muitas GUI?

Alguma dica sobre esses pontos?

S

Pessoal ressuscitando esse post, estou encontrando um erro na com o ext js que sozinho não estou conseguindo resolver, o erro é o seguinte, tenho uma servelet que se comunica com o cliente via json, porem quando executo a aplicação ele faz a requisição ajax tudo certinho, chama o servlet monta os dados no formato json porem quando abro o console do google chrome ela da a seguinte mensagem:

[E] Ext.JSON.decode(): You're trying to decode an invalid JSON String: {"nomeUsuario":"Nome do usuário"}

Abaixo segue o medel do ext js:

Ext.define('Usuario',{
    extend:'Ext.data.Model',
                
    fields:[
    {
        name: 'nomeUsuario'
        type: 'string'
    }
    ]
});

abaixo segue o codigo da store:

Ext.define('UsuarioStore',{
            extend:'Ext.data.Store',
            model:'Usuario',
            proxy:{   
                type:'ajax', 
                url:'Controller?cmd=getNomesUsuarios',
                reader:{ 
                    type:'json' 
                }
    
            },
            autoLoad:true 
        })
            
        Ext.onReady(function(){
            var nomeUsuario= Ext.create('UsuarioStore');
            console.log(nomeUsuario);
        });

Conto com a ajuda de vc6.

T

Vou dar um chute: verifique se o “Content-Type” do teu response é “application/json”.

S

O código no servidor responsável por executar a operação esta assim:

@Override
    public String execulte(HttpServletRequest request, HttpServletResponse response) {
        String contatosJson = "";
        Map<String, Object> json = new HashMap<String, Object>(2);
        final Gson gson = new Gson();
        response.setContentType("application/json");
        List<Contatos> listaContatos = new ContatosDAO(this.session).findAll();
        if (listaContatos != null) {
            try {
                for (Contatos contatos : listaContatos) {
                    json.put("nomeUsuario", contatos.getUsuarios().getNomeUsuario());
                    System.out.println(json.get("nomeUsuario"));
                    break;
                }
                response.getWriter().write(gson.toJson(json));

            } catch (IOException ex) {
                System.out.println("Erro ao recuperar o stream para escrita da response. Erro: " + ex);
            }

        }
        return "contatos.jsp";
    }
}
Criado 9 de fevereiro de 2009
Ultima resposta 15 de ago. de 2012
Respostas 28
Participantes 14