вызов информации из базы данных - PullRequest
1 голос
/ 26 марта 2012

Может ли кто-нибудь мне помочь, я пытаюсь вывести список пользователей из таблицы SQL в раскрывающийся список на HTML. И когда имя выбрано из этого списка, я хочу, чтобы оно отображало детали в таблице, называемой уведомлениями. Я не уверен, где проблема с моим кодом.

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

<%-- 
    Document   : history
    Created on : 12-Mar-2012, 03:49:35
    Author     : 
--%>

<sql:query var="user" dataSource="jdbc/noticeboard">
    SELECT username FROM registeredusers
</sql:query>



          <sql:query var="noticesQuery" dataSource="jdbc/noticeboard">
           SELECT N_id,postedon,messages,ack FROM notices order by N_id desc limit 1; 
        </sql:query>
       <c:set var="noticesDetails" value="${noticesQuery.rows[0]}"/>

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


        <form action="one.jsp">
    <strong>Select a username:</strong>
    <select name="username">
        <c:forEach var="row" items="${user.rowsByIndex}">
            <c:forEach var="column" items="${row}">
                <option value="<c:out value="${column}"/>"><c:out value="${column}"/></option>
            </c:forEach>
        </c:forEach>
    </select>
    <input type="submit" value="submit" name="submit" />
</form>







    </body>
</html>





    <%-- 
    Document   : one
    Created on : 26-Mar-2012, 07:35:21
    Author     : 
--%>
<sql:query var="userQuery" dataSource="jdbc/noticeboard">
    SELECT messages FROM notices WHERE user = ? <sql:param value="${param.user}"/>
</sql:query>
   <c:set var="messageDetails" value="${userQuery.rows[0]}"/>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
    </head>
    <body>


        <table border="1">

                <tr>
                    <td>ID</td>
                    <td>USERNAME</td>
                    <td>MESSAGE</td>
                    <td>DATE</td>
                    <td>ACK</td>
                </tr>
                <tr>
                    <td>${messageDetails.N_id}</td>
                    <td>${messageDetails.user}</td>
                    <td></td>
                    <td></td>
                    <td></td>
                </tr>

        </table>

    </body>
</html>

1 Ответ

1 голос
/ 26 марта 2012

Ваше имя параметра неверно

Вы передаете параметр username в one.jsp. чтобы использовать это, используйте ${param.username} или ${param[username] или <%=request.getParameter("username")%>. Таким образом, ваш запрос будет выглядеть так:

<sql:query var="userQuery" dataSource="jdbc/noticeboard">
    SELECT messages FROM notices WHERE user = ? 
    <sql:param value="<%=request.getParameter("username")%>"/>
</sql:query>

Кроме того, я не знаю, является ли это ошибкой копирования-вставки, вы не добавили URI taglib в one.jsp

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...