Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

marcelobbt

Problema ao receber informação do BD MySQL

Recommended Posts

Estava tentando seguir um tutorial, onde criei uma página web que lia umas informações do BD MySQL e então escolhia uma opção. Com base nessa opção, ele deveria mostrar as informações em outra página (response.jsp). No entanto, as informações simplesmente não aparecem.

 

Já olhei o tutorial diversas vezes e não consigo identificar onde estaria o erro.

 

Abaixo a página inicial que está funcionando:

<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql"%>
<%-- 
    Document   : index
    Created on : 27/08/2014, 16:04:06
    Author     : MarceloTeixeira
--%>

<sql:query var="subjects" dataSource="jdbc/mynewdatabase">
    SELECT subject_id, name FROM Subject
</sql:query>

<%--    
<table border="1">
    <!-- column headers -->
    <tr>
    <c:forEach var="columnName" items="${subjects.columnNames}">
        <th><c:out value="${columnName}"/></th>
    </c:forEach>
</tr>
<!-- column data -->
<c:forEach var="row" items="${subjects.rowsByIndex}">
    <tr>
    <c:forEach var="column" items="${row}">
        <td><c:out value="${column}"/></td>
    </c:forEach>
    </tr>
</c:forEach>
</table>
--%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Controle Financeiro</title>
        <link rel="stylesheet" type="text/css" href="style.css">
    </head>
    <body>
        <h1>Bem Vindo</h1>
        <table border="0">
            <thead>
                <tr>
                    <th>Título da tabela</th>
                </tr>
            </thead>
            <tbody>
                <tr>
                    <td>Texto da tabela</td>
                </tr>
                <tr>
                    <td>
                        <form action="response.jsp">
                            <strong>Selecione uma opção:</strong>
                            <select name="subject_id">
                                <c:forEach var="row" items="${subjects.rows}">
                                    <option value="${row.subject_id}">${row.name}</option>
                                </c:forEach>
                            </select>
                            <input type="submit" value="OK" name="submit"/>
                        </form>
                    </td>
                </tr>
            </tbody>
        </table>

    </body>
</html>

e abaixo o arquivo response.jsp que não está mostrando as informações.

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

<%-- 
    Document   : response
    Created on : 27/08/2014, 16:20:55
    Author     : MarceloTeixeira
--%>

<sql:query var="consueloQuery" dataSource="jdbc/mynewdatabase">
    SELECT * FROM Subject, Counselor
    WHERE Counselor.counselor_id = Subject.counselor_idfk
    AND Subject.subject_id = ? <sql:param value="${param.subject_id}"/>
</sql:query>

<c:set var="counselorDetails" value="${counselorQuery.rows[0]}"/>

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
        <link rel="stylesheet" type="text/css" href="style.css">
        <title>${counselorDetails.name}</title>
    </head>

    <body>
        <table>
            <tr>
                <th colspan="2">${counselorDetails.name}</th>
            </tr>
            <tr>
                <td><strong>Description: </strong></td>
                <td><span style="font-size:smaller; font-style:italic;">${counselorDetails.description}</span></td>
            </tr>
            <tr>
                <td><strong>Counselor: </strong></td>
                <td><strong>${counselorDetails.first_name} ${counselorDetails.nick_name} ${counselorDetails.last_name}</strong>
                    <br><span style="font-size:smaller; font-style:italic;">
                    <em>member since: ${counselorDetails.member_since}</em></span></td>
            </tr>
            <tr>
                <td><strong>Contact Details: </strong></td>
                <td><strong>email: </strong>
                    <a href="mailto:${counselorDetails.email}">${counselorDetails.email}</a>
                    <br><strong>phone: </strong>${counselorDetails.telephone}</td>
            </tr>
        </table>
    </body>
</html>

Creio que o erro está em alguma coisa entre as <sql:query> e </sql:query>, mas não consegui entender o que poderia ser.

 

Abaixo o link do tutorial que estava seguindo:

 

https://netbeans.org/kb/docs/web/mysql-webapp_pt_BR.html

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo, tente separar BD do JSP, use servlet para tratar as solicitações do BD e retornara para as telas....

 

Use Jquery para usar a atualização dos dados no momento que abre:

		<div id="comboDispositivo">
		<c:import url="ServletVeiculo" />
		<c:set var="listaDisp" value="${requestScope.listaDispositivo}" />
			<select name="dispositivo" id="DispSelecionado" style="width:125px;" onclick="desabilitarBox('comboDispositivo')">
				<option value="0">DISPOSITIVO</option>
					<c:forEach var="listasDisp" items="${listaDisp}">
						<option value="${listasDisp.dispositivo}">${listasDisp.dispositivo}</option>
					</c:forEach>
			</select>					
		</div>





E coloca a função para chamar o servlet:

function displayVals() {
	  
	  var dispositivoSeleionado = $('#DispSelecionado :selected').text();
	  $.ajax({
	        type: 'POST',
	        url: 'Servlet',
	        data: {
	      
	            dispositivo:dispositivoSeleionado
	        },
	        beforeSend:function(){
	            // this is where we append usually a loading image
	        },
	        success:function(data){
	            // successful request; do something with the data
	            $('#output').html(data);

	        },
	        error:function(){
	            // failed request; give feedback to user
	        }
	    });	  
	}
	$( "select" ).change( displayVals );
	displayVals();

Neste caso que te passei, é um combobox que gera uma lista de opção do bd...

 

É só uma sugestão.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.