VRaptor 2.6 - Redirecionamento Dinâmico

7 respostas
L

Bom dia amigos, estou usando o vraptor 2.6.

Tenho uma aplicação que recebe requisições de download de arquivos PDF, porém estes pode acontecer de ainda não existirem, então quero fazer um esquema aonde se o arquivo existir, faz o download, caso contrário, mostra página JSP com uma mensagem de arquivo ainda não está disponível, por exemplo.

Como posso fazer isto ?

7 Respostas

Lucas_Cavalcanti

atualize para o VRaptor 3:
http://vraptor.caelum.com.br/documentacao/migrando-do-vraptor2-para-o-vraptor3/

é bem mais fácil de fazer no VRaptor 3, e ele é compativel com a maioria das coisas do VRaptor 2.6

L

Olá Lucas, obrigado pela atenção. Vou analisar melhor esta possibilidade. Mas assim, eu acho que eu migrar agora, no final do projeto por causa de um redirect iria atrasar um pouco a entrega.

Seria interessante eu terminar, fazer o redirect conforme estou tentando e depois fazer esta migração.

Eu pensei em usar um interceptor, mas daí para que serviria um componente e um metodo se eu fizesse o redirecionamento usando o sendRedirect ?

[]s

Lucas_Cavalcanti

vc pode retornar uma string, e de acordo com essa string fazer o redirect pro cara certo…

public String geraPDF() {
     //...
     if (blah)
        return "ok";
     else
        return "erro";
}

e no views.properties

xxxxx.geraPDF.ok = redirect:pagina do pdf
xxxxx.geraPDF.erro = redirect:pagina de erro
L

Olá Lucas, mas eu não sei o nome do arquivo PDF. Ele será carregado do banco… Para o invalid posso usar o view, mas para o xxxxx.geraPDF.ok, não posso utilizar, pois o retorno vai depender de um parametro.

Lucas_Cavalcanti

você pode exportar uma variável no escopo de flash e pegar na outra lógica

L

Lucas e como eu faço isto?

Isto não sei mesmo como fazer (pelo menos não com este nome, rsssssss)

Lucas_Cavalcanti

numa ponta

@Out(scope=ScopeType.FLASH)
private PDF pdf;

public String geraPDF() {
    if (blah) {
        this.pdf = ....
        return "ok"
    } else {
        return "erro"
    }
}

na outra ponta:

@In
private PDF pdf;

ou algo parecido

Criado 15 de julho de 2010
Ultima resposta 15 de jul. de 2010
Respostas 7
Participantes 2