Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Exibir imagem Table JSP

Galera, boa noite.

Tenho um JSP onde nele exibo informações de um cadastro de cliente em um TABLE.

A ultima coluna é para exibir uma imagem que fica disponível em um diretório de rede.

O diretório onde a imagem está é um atributo do objeto cliente (c).

Porém, quando a pagina é carregada, a imagem não é exibida.

O valor do atributo c.imagem é : C:\Users\Teste\Desktop\imagens

Alguém saberia o porque a imagem não é carregada? Estou rodando na minha maquina, direto do Eclipse e o TOMCAT também é local.

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>

<html>
<body>

    <h2>Resultado da busca:</h2>
    <br>
    <br>


    <table>
        <tr>
            <td>Id</td>
            <td>Nome</td>
            <td>Documento</td>
            <td>Tipo</td>
            <td>Excluir</td>
        </tr>
        <c:forEach var="c" items="${clientes}">
            <form action="executar" method="POST">
            <!-- <input type="hidden" name="tarefa" value="ExcluiCliente">  -->
            <input type="hidden" name="id" value="${c.id}">
            <input type="hidden" name="nome" value="${c.nome}">
            <input type="hidden" name="documento" value="${c.documento}">
            <input type="hidden" name="tipo" value="${c.tipoCliente}">
            <input type="hidden" name="tipo" value="${c.imagem}">
                <tr>
                    <td><c:out value="${c.id}" /></td>
                    <td><c:out value="${c.nome}" /></td>
                    <td><c:out value="${c.documento}" /></td>
                    <td><c:out value="${c.tipoCliente}" /></td>
                    <td><img src="${c.imagem}"/></td>    
                    <td><input type="submit" name="tarefa" value="ExcluiCliente"></td>
                    <td><input type="submit" name="tarefa" value="PreAlteraCliente"></td>
                </tr>
            </form>
        </c:forEach>
    </table>


    <br><br>
    <c:url value="/index.jsp" var="urlIndex"/>
    <a href="${urlIndex}">Voltar a pagina principal</a>

</body>
</html>
4 respostas

Oi Bruno,

Você disse que o atributo ${c.imagem} é avaliado como: C:\Users\Teste\Desktop\imagens.

Mas esse então é apenas o diretório onde está a imagem, faltou passar o nome da imagem.

Acredito então que no browser a tag img está ficando com o src assim:

<img src="C:\Users\Teste\Desktop\imagens"/>

Mas precisa do caminho da imagem. Algo como:

<img src="C:\Users\Teste\Desktop\imagens\image.jpg"/>

Veja se esse é o problema.

Obs: você pode também conferir no browser como está chegando o src da imagem, apenas abrindo a página e mandando exibir o código fonte.

Rodrigo, boa noite.

Conferi no browser, o valor do atributo src do elemento está com o nome da figura, porém, continua não exibindo.

<img src="C:\Users\Teste\Desktop\imagens\44.jpg"/>
solução!

Oi Bruno,

O código está correto então.

O problema é que não é possível ler imagens que estão no computador. Essa imagem precisaria estar dentro de alguma pasta do proprio projeto, ou hospedada em algum site.

Rodrigo, boa noite

Alterei o projeto para armazenar as imagens num Bucket do Google Cloud.

Obrigado