Problemas com JSTL em página JSP

5 respostas
adriano_si

Ae gente to com um problema no JSTL e gostaria da ajuda de vocês, vou mostrar meu código e depois o erro que tá dando...

Página "index.jsp"

<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>

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

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
    </head>
    <body>
        <form name="form1" action="recebeDados.jsp" method="POST">
            <table border="0">
                <thead>
                    <tr>
                        <th colspan="2">Cadastrar Dados na Agenda</th>
                        <th></th>
                    </tr>
                </thead>
                <tbody>
                    <tr>
                        <td>Nome:</td>
                        <td><input type="text" name="nome" value="" size="35" /></td>
                    </tr>
                    <tr>
                        <td>Endereço:</td>
                        <td><input type="text" name="endereco" value="" size="35" /></td>
                    </tr>
                    <tr>
                        <td>Bairro:</td>
                        <td><input type="text" name="bairro" value="" size="20" /></td>
                    </tr>
                    <tr>
                        <td>Cidade:</td>
                        <td><input type="text" name="cidade" value="" size="20" /></td>
                    </tr>
                    <tr>
                        <td>Estado:</td>
                        <td><input type="text" name="estado" value="" size="4" /></td>
                    </tr>
                    <tr>
                        <td>CEP:</td>
                        <td><input type="text" name="cep" value="" size="9" /></td>
                    </tr>
                    <tr>
                        <td>Telefone:</td>
                        <td><input type="text" name="telefone" value="" size="15" /></td>
                    </tr>
                    <tr>
                        <td colspan="2"><input type="submit" value="Enviar" />
                        </td>
                    
                    </tr>
                </tbody>
            </table>

        </form>

    
    
    </body>
</html>

Página "recebeDados.jsp"

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

<sql:setDataSource driver="org.gjt.mm.mysql.Driver"
url="jdbc:mysql://localhost:3306/agenda" user="root" password=""
var="datasource"/>

<c:if test="${param.nome "&& param.endereco"}">
    <sql:update var="inserido" dataSource="${datasource}">
        INSERT INTO registros(nome,endereco,bairro,
        cidade,estado,cep,telefone)
        VALUES (?,?,?,?,?,?,?);
        <sql:param value="${param.nome}">
        <sql:param value="${param.endereco}">
        <sql:param value="${param.bairro}">
        <sql:param value="${param.cidade}">
        <sql:param value="${param.estado}">
        <sql:param value="${param.cep}">
        <sql:param value="${param.telefone}">
    </sql:update>
</c:if>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Recebendo Dados</title>
    </head>
    <body>

        <c:if test="${inserido>0}">
            O nome
            <b>
                &lt;c:out value="${param.nome}"/&gt;
            </b> f
            foi Inserido com Sucesso !<br/>
        &lt;/c:if&gt;
        
        &lt;sql:query var="results" dataSource="${datasource}"&gt;
            SELECT *  FROM registros
        &lt;/sql:query&gt;
        
        &lt;table border="1"&gt;
        &lt;tr&gt;
            &lt;th colspan="2"&gt;Agenda&lt;/th&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;th&gt;Nome&lt;/th&gt;&lt;th&gt;Telefone&lt;/th&gt;
        &lt;/tr&gt;
        
        &lt;c:forEach var="row" items="${results.row}"&gt;
            &lt;tr&gt;
                &lt;td&gt;&lt;c:out value="${row.nome}"&gt;&lt;/td&gt;
                &lt;td&gt;&lt;c:out value="${row.nome}"&gt;&lt;/td&gt;
            &lt;/tr&gt;
        &lt;/c:forEach&gt;
        &lt;/table&gt;
        
        
    &lt;/body&gt;
&lt;/html&gt;
O erro é na seguinte linha
&lt;c:if test="${param.nome "&& param.endereco"}"&gt;
e dá a seguinte mensagem:

org.apache.jasper.JasperException: Unterminated <c:if tag
C:/Documents and Settings/José/Desktop/Adriano/ProjetosWEB/ProjetoTesteJSTL/build/web/recebeDados.jsp(10,26)
C:\Documents and Settings\José\Desktop\Adriano\ProjetosWEB\ProjetoTesteJSTL\nbproject\build-impl.xml:361: The following error occurred while executing this line:
C:\Documents and Settings\José\Desktop\Adriano\ProjetosWEB\ProjetoTesteJSTL\nbproject\build-impl.xml:342: Java returned: 1

Ficaria muito grato a quem pudesse me ajudar !!!

Abraços :cool:

5 Respostas

Cocota

org.apache.jasper.JasperException: Unterminated <c:if tag

O erro diz que você não fechou o <c:if> mas perceba…

<sql:param value="${param.nome}">
         <sql:param value="${param.endereco}">
         <sql:param value="${param.bairro}">
         <sql:param value="${param.cidade}">
         <sql:param value="${param.estado}">
         <sql:param value="${param.cep}">
         <sql:param value="${param.telefone}">

Você usou a tag sql:param e não fechou nenhuma. Ela é vazia então faltou você dar a barra no final.
Ficaria assim:

<sql:param value="${param.nome}"/>
         <sql:param value="${param.endereco}"/>
         <sql:param value="${param.bairro}"/>
         <sql:param value="${param.cidade}"/>
         <sql:param value="${param.estado}"/>
         <sql:param value="${param.cep}"/>
         <sql:param value="${param.telefone}"/>

Vê se é isso.

adriano_si

Cara era isso tbm, fora alguns outros erros, mas eu já ajeitei… Valews, só que agora ele não dá erro mas não tá inserindo os dados no BD… sabes o que pode tá acontecendo ???

Desde já agradeço 8)

Cocota

Ele deve estar dando erro onde você não está vendo.

Qual seu ambiente de produção?
Netbeans? Eclipse? NoBraço?

E outra…
Não quero mudar o seu jeito de programar…
Mas esse ‘duas camadas’ não é legal.
Utilize Servlets pra seu controle e mais uma camada para persistir seus dados.

J

acho que essa linha ta cagada:

<c:if test="${param.nome "&& param.endereco"}">

provavelmente isso seria o certo:

<c:if test="${param.nome && param.endereco}">
adriano_si

Cara isso é só um teste… não usei padrão nenhum !!! é só um teste de uma agenda, espero que dê certo !!! Tô usando o NetBeans 5

Abraços 8)

Criado 6 de novembro de 2006
Ultima resposta 9 de nov. de 2006
Respostas 5
Participantes 3