从数据库中调用信息

时间:2012-03-26 06:46:37

标签: html sql forms jsp

任何人都可以帮助我,我试图将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 个答案:

答案 0 :(得分:1)

  

您的参数名称不正确

您正在将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>

另外,我不知道它是否是复制粘贴错误,你没有在one.jsp中添加taglib URI