Mensagens enviadas por: cmilfont
Índice dos Fóruns » Perfil de cmilfont » Mensagens enviadas por cmilfont
Autor Mensagem
EuclidesFilizola wrote:Entendo, porém como faço para que não abra a janela ? Pois o problema é que estou fazendo:



Ou seja, estou abrindo um new Window ... que tipo de evento posso jogar no Extjs que ele chame meu método direto ?


Euclides, voce não vai abrir a janela, simplesmente o que aciona essa Window hoje vai ser trocado por um link comum.
Eu ainda faria o seguinte, colocaria dois links, um "Visualizar"e outro "Download", o primeiro faz o que ele já fazia, o segundo aponta a url "'/vianet/empresa/listarTdasEmpresas?element.nomeFantasia=" direto na tag < a >
EuclidesFilizola wrote:Bom dia pessoal,

eu só tenho uma dúvida. E se eu quisesse jogar o relatorio para download sem que abrisse o iframe? Como eu faria?

eu sei que eu mudaria no meu método no java o seguinte:


porém eu não saberia como ficaria no front-end.. como eu faria no ExtJS ?



Euclides, voce pode colocar um link como opção de download, basta por uma tag < a > com a url apontando para o pdf, no server side voce já colocou como devia.
EuclidesFilizola wrote:Tentei :

http://localhost:8080/aplicacao/app/controller/administrativo/relatorio/relatorio.pdf

e realmente não acessa. Da erro 404. Porém o arquivo encontra-se em:

Webcontent/app/controller/administrativo/relatorio/relatorio.pdf. Porque não consigo acessa-lo ?


Euclides, a url do pdf tem que ser essa "/vianet/empresa/listarTdasEmpresas?", acessando diretamente não funciona?
EuclidesFilizola wrote:Eu tentei fazer assim:



E oq acontece é:

abre o iframe vazio, não aparece nenhum erro no console do java e também não aparece erro algum no firebug ......


Euclides, olha o código que postei antes, não tem mais essa chamada ajax, faça a resposta para GET em vez de POST e mande a url direta no src do iframe
EuclidesFilizola wrote:Estou tentando fazer assim:



Bom, ele abre um iframe, porém com valores 404 not found... ou seja, faltam os parametros. como eu passo ?


Eu acho que confundi mais do que ajudei, via ajax não vai funcionar, o que faço via ajax é buscar o caminho do relatorio que é gerado em um processo assincrono eu já pego o pdf processado, meu caso é um pouco diferente do seu.

Voce tem que fazer algo mais ou menos assim [antes passe a responder via GET em vez de POST]:



Dessa forma o seu relatorio será aberto dentro de um iframe que faz parte da window do Ext.
denisspitfire wrote:entao cara, mas só um detalhe... de onde vem esse array? ele vira uma session? ele vira oque? isso que eu nao consigo entender.


JSON é um formato de troca de dados. Basicamente é uma resposta do servidor em texto puro seguindo regras definidas, escrevi um tutorial sobre o formato há algum tempo http://www.milfont.org/tech/2007/11/04/o-que-e-json/

Quando voce faz uma requisição [REQUEST] para um servidor, esse processa a resposta [RESPONSE] dos dados em texto puro seguindo o formato estabelecido, apenas isso. Via de regra utilizamos o Mimetype "application/json" para fazer esse request e informar ao servidor que me devolva um json. Alguns casos o servidor espera essa informação do mimetype no próprio cabeçalho da requisição com os parametros "Content-Type":"application/json" e "Accept":"application/json".

http://pt.wikipedia.org/wiki/MIME
não é possível, o que os Frameworks fazem é criar um iframe com a cópia do formulário e submeter naturalmente, o resultado dessa submissão é o body desse iframe. Se a resposta for um json, basta pegar esse body e fazer parser. É assim que eles fazem.
Voce pode até submeter para dominio diferentes já que vai ser uma submissão form natural e não ajax [nesse caso só não conseguirá ter a resposta porque iframes de dominios diferentes não permitem acesso a seu DOM pelos navegadores modernos].
vou colar o código completo aqui [extjs 3] de como faço:




a função que captura o resultado em um iframe, uso sempre jQuery com Extjs



Esse código já tá meio antigo, mas é o mais novo que tenho com Extjs + jasper
EuclidesFilizola wrote:Eu vi uma solução, parecida com essa, porém não to vendo como usa-la



Eu faço algo parecido em um projeto aqui que usa jasper com rails, fica assim



Basta trocar o src pelo caminho do seu relatorio com os parametros, isso vai garantir que ele vai carregar um iframe dentro da window, na pior das hipoteses vai pedir para fazer o down
Euclides, se voce não tiver um viewer pdf como plugin no seu navegador ele pedirá pelo menos para fazer download. Isso não acontece?
Lucas Emanuel wrote:
cmilfont wrote:
Lucas Emanuel wrote:Comecei adotar este modelo e os Templates JS, mais especificamente o Mustache.js, já que gostei bastante.

No entanto, existem algumas coisas que ainda me encomoda.

Por exemplo, com Mustache, quando vou gerar uma table com os dados via JSON por exemplo, tenho que fazer:

1 - Escrever template HTML dentro de String JS? Isso sangra os olhos. (lembra o velho servlet com write). Não há como colocar o {{dado}} direto no HTML como se fosse EL do JSP?
2 - Ele renderiza a Página primeiro (html/css) e depois gera os dados? (Se fosse gerado no servidor os dados viriam formados) = Impacto no desempenho?

Estou querendo adotar esse modle em futuros projetos, com Vraptor ou Rails, mas acredito que esses dois pontos são fundamentais para adoção.


Na verdade usar um template é o contrario do item 1, voce deve escrever marcações dentro de um html que vai servir como template, usando o Mustache especificamente voce vai montar a table dessa forma [ o exemplo é com lista mas a ideia a mesma] http://mustache.github.com/#demo

Não entendi o item 2


Legal.

Quanto ao Item 2, quis dizer o seguinte:

Por exemplo, quando voce desenvolve uma página muito dinâmica, contendo dados dinâmicos, feito em JSP por exemplo, o servidor já envia o html com os dados dinamicos já montados, e o papel do cliente é somente estruturar a página e aplicar estilização em CSS (e alguns JSs).

Com abordagem do template JS, as "montagem" de dados ocorre no cliente (ou não?), juntamente com estilização. Isso pode provocar um retardo (talvez não notável aos nossos olhos), ou causar uma espécie de FOUC?


Bem, a estuturação pode ocorrer nos dois lados, entenda que a abordagem de apresentação totalmente no lado cliente não impede que o tradicional ocorra.
Claro que dependendo da situação pode ocorrer duplicidade no esforço, mas por exemplo: usando erb como template voce pode se beneficiar do ejs e manter uma unica estrutura e renderizar de acordo com a necessidade [caso o navegador esteja com js desabilitado ou nao suporte js].

De qualquer forma respondendo diretamente a sua pergunta, esses "JSPs" serão montados no lado cliente e pode ocorrer sim um delay perceptivel, tudo vai ocorrer na estrategia que voce adotar. Eu recomendaria inclusive voce testar outras soluções de template e em modelos de estratégia de MVC com js.

Comparativo bacana sobre template engines http://jsperf.com/dom-vs-innerhtml-based-templating/56
pcassiano wrote:vem cá: a revista java magazine não pode processar os caras, já que (aparentemente) a marca é da editora brazuca?


Como a marca JAVA é da Oracle, na verdade ele que poderia processar a revista nacional, mas estou conjecturando afinal ñ sei se há contrato entre as partes.
De qualquer forma a Oracle pode e - pela notícia - vai lançar uma revista com o nome de outra já existente, resta saber se a revista nacional quer peitar!
Lucas Emanuel wrote:Comecei adotar este modelo e os Templates JS, mais especificamente o Mustache.js, já que gostei bastante.

No entanto, existem algumas coisas que ainda me encomoda.

Por exemplo, com Mustache, quando vou gerar uma table com os dados via JSON por exemplo, tenho que fazer:

1 - Escrever template HTML dentro de String JS? Isso sangra os olhos. (lembra o velho servlet com write). Não há como colocar o {{dado}} direto no HTML como se fosse EL do JSP?
2 - Ele renderiza a Página primeiro (html/css) e depois gera os dados? (Se fosse gerado no servidor os dados viriam formados) = Impacto no desempenho?

Estou querendo adotar esse modle em futuros projetos, com Vraptor ou Rails, mas acredito que esses dois pontos são fundamentais para adoção.


Na verdade usar um template é o contrario do item 1, voce deve escrever marcações dentro de um html que vai servir como template, usando o Mustache especificamente voce vai montar a table dessa forma [ o exemplo é com lista mas a ideia a mesma] http://mustache.github.com/#demo

Não entendi o item 2
Estaremos lá, as comunidades GURU-CE, JavaCE e XPCE farão a maior caranava do mundo esse ano para o QCON.
Lucas Emanuel wrote:Cara, muito bacana. Valeu pelas respostas.

Nesse caso, o que voce indicaria para utilizar como controlador que ficara no Servidor? Tem como utilizar o VRaptor? Servlet puro? ou outros frameworks? Ou voce implementou seu próprio controler em Java?

Grato!


Em Java eu recomendo o VRaptor, se procurar aqui mesmo no forum vai encontrar muita referencia sobre VRaptor + Rest, JSON, etc...
 
Índice dos Fóruns » Perfil de cmilfont » Mensagens enviadas por cmilfont
Ir para:   
Powered by JForum 2.1.8 © JForum Team