Adicionei um if, para o caso de um novo registro ou no caso de um registro que não possui as informações necessárias:
<c:if test="${produto.localImagem != null && produto.imagem != null}">
<img src...
</c:if>
Antes de eu adicionar a anotação que vc me orientou, estava gerando erro 404 e 500 para as tags:
<img src="<c:url value="/imagem/imgProduto?caminho=${arquivo.caminho}"/>"/>
<img src="<c:url value="/imagem/imgProduto/${produto.id}"/>"/>
, respectivamente.
Adicionei a anotação, abri o console do Chrome e verifiquei e começou a gerar o erro 404, para ambas as tags (de um registro que possui "localImagem" e "imagem").
Adicionei print´s no ImagemController, mas nada foi impresso no console do Eclipse...
Parece que ele não está passando pelo controller...
Ou eu não consigo printar as informações que que passam pelo controller ?
Meu ImagemController, com os print´s:
package br.com.empresa.controller;
import java.io.File;
import javax.inject.Inject;
import br.com.caelum.vraptor.Controller;
import br.com.caelum.vraptor.Get;
import br.com.empresa.dao.ProdutoDao;
import br.com.empresa.modelo.Produto;
@Controller
public class ImagemController {
@Inject
private ProdutoDao produtoDao;
@Get("download/{id}")
public File imgProduto(Integer id) {
Produto produto = produtoDao.buscaProdutoPorId(id);
System.out.println("EVD, Imagemcontroller: " + produto.getId() + " - ID L.22");
System.out.println("EVD, Imagemcontroller: " + produto.getLocalImagem() + " - LOCAL IMAGEM L.23");
System.out.println("EVD, Imagemcontroller: " + produto.getImagem() + " - IMAGEM L.24");
String caminho = produto.getLocalImagem() + "\\" + produto.getImagem();
System.out.println("EVD, Imagemcontroller: " + caminho + " CAMINHO L.29");
System.out.println("EVD, Imagemcontroller: " + produto.getId() + " - ID L.30");
System.out.println("EVD, Imagemcontroller: " + produto.getLocalImagem() + " - LOCAL IMAGEM L.31");
System.out.println("EVD, Imagemcontroller: " + produto.getImagem() + " - IMAGEM L.32");
/* Trocando '/' por '\\' */
caminho = caminho.replace("\\", "\\\\");
System.out.println("EVD, Imagemcontroller: " + caminho + " CAMINHO L.37");
/* Verificando se o caminho aponta para uma imagem */
if (!caminho.contains(".jpg")) {
return null;
} else {
File arquivo = new File(caminho);
return arquivo;
}
}
}
Atualizei o projeto no drive...
Alguma ideia do que possa estar acontecendo Matheus...
Qual procedimento vc quer que eu faça pra gente tentar descobrir o que ocorre...
Obrigado pela ajuda !!