Enviando parâmetro JSP que vem de uma lista [RESOLVIDO]

6 respostas
M

Senhores,

Estou tentando chamar uma pagina JSP por outra pagina, passando o parâmetro que vem de um list, mas não consigo pegar o valor do Id:

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql" %>

<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Categorias</title>
    </head>
    <body>
    Categorias  
    <br/>
        <sql:setDataSource
            var="conexao"
            dataSource="jdbc:mysql://127.0.0.1/loja,com.mysql.jdbc.Driver,root,root"
            />
               
                <sql:query dataSource="${conexao}" var="consulta">
                    select idcategorias, categoria from categorias order by categoria
                </sql:query>
                    <td><a href="incluircategorias.jsp">Incluir nova Categoria</a></td>
                    <table>
                        <c:forEach var="linha" items="${consulta.rows}">
                            <tr>
                                <td><a href="mantercategorias.jsp"><c:out value="${linha.categoria}"/></a></td>
                                <c:set var="id" value="${linha.idcategorias}"></c:set> //Preciso passar o valor desse id para poder deletar                                                               
                                <% String codigo = request.getParameter("id"); %>
                                <td><a href="delete.jsp?id=<%= codigo %>"><c:out value="excluir"/></a></td>
                                
                            </tr>    
                        </c:forEach>
                            
                    </table>        
    </body>
</html>

Obs: precisa ser com JSTL, não pode ser com JavaScript

6 Respostas

D
<c:set var="id" value="${linha.idcategorias}"></c:set> //Preciso passar o valor desse id para poder deletar                                                                 
                                <% String codigo = request.getParameter("id"); %>  
                                <td><a href="delete.jsp?id=<%= codigo %>">

Meu, gambiarra é pouco, não?
Se está utilizando JSTL por que encher de scriptlet no código? Coisa feia e ridícula.

Isso tudo ali de cima por ser substituído por

<c:out value="<a href=\"delete.jsp?id=\"${linha.idcategorias}\">Excluir</a>"/>
M

Amigo, obrigado pela ajuda!
Na verdade estou estudando melhor essa parte de JSTL, por isso estou testando algumas coisas.
De qualquer forma agradeço a ajuda!

Porem tá aparecendo assim no browser:

Categorias
Incluir nova Categoria
categoria1	<a href="delete.jsp?id="1">Excluir</a>
D

Ops, fazer 3001 coisas ao mesmo tempo não dá certo.
Veja quão simples isso pode ficar:

<c:out value="<a href=\"delete.jsp?id=\"${linha.idcategorias}\">Excluir</a>"/>

Se torna

<a href="delete.jsp?id=${linha.idcategorias}">Excluir</a>

A EL (aquilo que começa com ${ e termina em }) é interpretada por completo, independente de estar em uma tag JSTL.
Aliás, é possível utilizar EL sem nenhuma linha ou taglib referenciando JSTL.

M

Cara muito obrigado pela ajuda e atenção!

D

Outra dica, após estudar essa parte de conexão com o banco, esqueça que é possível acessar banco de dados diretamente da JSP.
A função da JSP é exibir e receber informações oriundas ou que serão utilizadas para o processamento.
Consultas são feitas em classes específicas.

M

drsmachado:
Outra dica, após estudar essa parte de conexão com o banco, esqueça que é possível acessar banco de dados diretamente da JSP.
A função da JSP é exibir e receber informações oriundas ou que serão utilizadas para o processamento.
Consultas são feitas em classes específicas.

Ok! Isso eu sei! É como eu te disse estou apenas estudando e vendo os recursos que posso utilizar!
Mas de qualquer forma obrigado por reforçar e valeu a dica!

Criado 5 de junho de 2012
Ultima resposta 5 de jun. de 2012
Respostas 6
Participantes 2