Boa Tarde
Implemente o upload de arquivo via Vraptor seguindo o http://www.caelum.com.br/apostila-vraptor-hibernate/apendice-download-e-upload/ , com alteração na parte da visualização da imagem:
<img src="<c:url value="/produtos/${produto.id}/imagem"/>"
width="100" height="100"/>
alterei para ser preenchido o “src” via jquery:
$("#divLogotipo").html("");
$("#divLogotipo").html("<img src=\"mostrarLogotipo\" width=\"120px\" /> <a href=\"#\" onclick=\"excluirLogotipo();\" class=\"btn btn-small\" title=\"Remover\"><i class=\"icon-trash\"></i></a> ");
No Chrome funciona bem, incluo, altero e removo a imagem sem problemas. No firefox na primeira fez que incluo a imagem ou edito, ele executa o método mostrarLogotipo que está no controller, mas após, não faz mais a chamada, parece que o firefox faz “cache” da chamada, não consigui identificar o motivo.
Na depuração via firebug, nota-se que a chamada é executada somente uma vez mesmo.
Alguém já passou por algo parecido?
Obrigado.
tenta colocar o caminho completo pro método do controller…
por exemplo usando o linkto:
${linkTo[LogoController].mostrarLogotipo}
Olá Lucas,
Inserindo o linkTo no HTML puro e funcionou, porém, estou com dificuldades para inserir o ${linkTo} via jquery, tentei utilizar tagLib mas não adiantou.
Tem alguma sugestão?
Obrigado
vc não deveria usar o ${linkTo} no javascript… só funciona se o javascript estiver dentro de uma jsp.
o ideal é colocar em algum dos elementos do html, tipo:
<div id="divLogotipo" data-mostrar-url="${linkTo[....]}">...
e no js:
var url = $('#divLogotipo').data("mostrar-url");
//...
Boa Tarde Lucas,
Agradeço a ajuda, consegui resolver a questão utilizando um new Date().getTime() após a chamado do médoto, o firefox faz cache da chamada do método por retornar uma imagem. Assim a chamada do método sempre mudará.
Talvez isso ocorreu pois alterei um pouco a lógica que está na apostila do Vraptor, pois coloquei a imagem na sessão para possibilitar a visualização em tempo de inclusão e edição com isso não utilizo o id do objeto.
Segue o javascript final:
function inserirImagemFormulario() {
$("#divLogotipo").html("");
$("#divLogotipo").html("<img src=\"mostrarLogotipo?"+new Date().getTime() +"\" width=\"120px\" /> <a href=\"#\" onclick=\"excluirLogotipo();\" class=\"btn btn-small\" title=\"Remover\"><i class=\"icon-trash\"></i></a> ");
}
Obrigado