Struts 2 <result> sem Redirecionamento

Olá pessoal,

Seguinte eu desenvolvendo uma aplicação web utilizando o Struts 2, e me deparei com um problema que por enquanto não encontrei nenhuma solução.
O problema é o seguinte eu tenho uma action que faz o upload de arquivos para dentro do servidor, a action está funcionando certinho, o unico problema é que os result da action exigem uma URL para redirecionar a página ao final do upload, eu não posso redirecionar a página porque senão o usuário perde tudo o que ele fez na página que ele estava trabalhando.

A pergunta é a seguinte, tem como criar uma action que o result dela não redireciona para URL alguma?

Ja pesquisei aqui no forum e até achei um amigo nosso com o mesmo problema, mas no topico dele, ele não conseguiu ajuda ou não postou a solução, também já googliei mas ainda nada, se alguem souber de alguma coisa que possa me ajudar eu agradeço, qualquer informação é valida.

Abraço a todos.

Acho que isso ajuda:


e isso também
http://www.roseindia.net/struts/struts2/struts-2-file-upload.shtml

drsmachado, obrigado por ter respondido, mas então o meu upload já está funcionando e se você ver nesse código que você me passou, quando upload é bem sucessido a action redireciona para uma certa página, o que eu quero é o seguinte, eu não quero a action redirecione para página alguma, o que eu preciso é que quando o upload acabar nada seja feito ou seja o usuário continua na mesma página.

Abraço

4 letras: AJAX.
Como fazer?
Aí você deve procurar na internet, afinal, o Struts 2 sempre exigirá o redirect para processar o upload.

Sim, legal, o Ajax seria uma boa opção, eu já testei ele e fiz alguns teste.

Bom eu não expliquei direito também o que eu quero né.

Porque eu to fazendo com Struts, por exemplo, eu vou fazer upload de arquivos de áudio e vídeo, ao receber um vídeo por exemplo vou converter o vídeo para um formato especifico, por exemplo se eu receber um video.avi vou ter que convertelo para video.mp4, todos os videos que eu receber vou converter para mp4, quem faz essa conversão é uma classe minha em java, por isso que eu preciso que o upload seja em Action com o Struts.

Bom mas agora eu também não sei, se por Ajax dá para chamar uma classe java, ou melhor, se por ajar der para mim mandar comando para o konsole já resolveria também, vou dar uma olhada nisso.

Toda tecnologia que você utilizar vai precisar de redirecionamento, pois o upload é um processo disparado pela submissão de um determinado formulário. Seja usando servlet, struts 1, 2, jsf 1, 2 ou mesmo vRaptor.
A questão do uso do ajax é que você consegue enviar sem ter que submeter a página toda, como o ajax espera o final do processo, um retorno de texto ou xml, você pode fazer o upload e já informar se deu certo ou errado (sabe como o gmail anexa arquivos? Da mesma maneira).

Uma simples googlada por “upload de arquivos ajax + struts 2” me retornou, entre outros, este link:
http://struts2.wordpress.com/2008/02/01/struts2-ajax-upload/
Que contém a referência a este
http://www.devedup.com/ajaxfileupload/

Acho que resolve teu problema, não?

drsmachado
É bem isso mesmo, eu ainda não tinha feito uma busca de Ajax + Struts 2, boa observação a sua, muito obrigado pela ajuda, isso já vai fazer o que eu preciso, valeu mesmo.

Abraço.

Só para deixar documentado, tentei baixar os arquivos jar do site que foi mencionado mas infelizmente não consegui, parece que esta off ou não existe mais, cliquei em download e nada aconteceu.

Bom mas baseado nisso fiz outras pesquisas para tentar encontrar outra solução, encontrei varios exemplos, só que, enquanto eu procurava eu me fiz a seguinte pergunta “Por que eu não faço isso com IFRAME”, pois é, uma solução simples e que resolveu meu problema, coloquei a action de upload dentro de um iframe, dessa maneira o upload é feito e o redirect é dado dentro do iframe, o que resolve meu problema, pois o usuário não perde o que ele estava fazendo na página.

Mesmo assim obrigado drsmachado a solução que você apresentou é util e também serviria para resolver meu problema.