JSTL e SQL

2 respostas
M

Bom dia
Estou desenvolvendo uma página que faz uma busca no banco usando simples taglibs.
Porem a pagina precisa fazer ações diferentes em funcao do numero de resultados, tipo assim:
Busca retornou 0 itens: imprime erro; retornou 1 item: redireciona para pagina de edicação deste item; retornou mais de 1 item: abre pagina para listar itens;
O problema é fazer essa análise de quantos itens a busca no banco retornou usando jstl, alguem pdoeria me ajudar?
Segue abaixo o codigo do jsp.

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@taglib prefix='c' uri='http://java.sun.com/jsp/jstl/core' %>
<%@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>Buscar Alunos</title>
    </head>
    <body>
        <sql:setDataSource
            var='conexao'
            dataSource="jdbc:mysql://127.0.0.1/escola,com.mysql.jdbc.Driver,root,123"
            />
        
        <h1>Buscar Alunos</h1>
        <form action="/Aluno" >
            <table>
                <tr>
                    <td>Nome:</td>
                    <td><input type="text" name="nome"></td>
                </tr>
                <tr>
                    <td><input type="submit" value="Buscar" name="buscar"></td>
                </tr>
            </table>
        </form>
        
                        <c:if test='${!empty param.salvar}'>
                            <sql:query dataSource="${conexao}" var="buscar">
                                select * from aluno where nome like "%${param.nome}"
                        </sql:query>
                                <c:if test="${buscar.rows} == 0"> // Comparacao para ver quantidade de linhas encontradas
                                    <c:out value="Nada foi encontrado" />
                                </c:if>
                                <c:if test="${buscar.rows} == 1">
                                    <c:redirect url="editaralunos.jsp">${param.nome}</c:redirect>
                                </c:if>
                                <c:if test="${buscar.rows} > 1">
                                    <c:redirect url="imprimiralunos.jsp"></c:redirect>
                                </c:if>
                        
    </body>
</html>

2 Respostas

drsmachado

Sendo curto e grosso (mais grosso que curto), não faça assim.
É possível, sim. É certo? Não.
Embora haja ferramentas para isso, você não deve proceder dessa forma. Use uma estrutura, mesmo que um servlet, para acessar os dados no banco.

M

drsmachado:
Sendo curto e grosso (mais grosso que curto), não faça assim.
É possível, sim. É certo? Não.
Embora haja ferramentas para isso, você não deve proceder dessa forma. Use uma estrutura, mesmo que um servlet, para acessar os dados no banco.

vlw pela dica :thumbup:

Criado 30 de julho de 2013
Ultima resposta 30 de jul. de 2013
Respostas 2
Participantes 2