1

这是我用来显示数据库数据的代码。

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql"%>
<%@ page import="java.io.*,java.util.*,java.sql.*"%>
<!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=ISO-8859-1">
<title>Book List</title>
</head>
<body>
    <sql:setDataSource var="snapshot" driver="com.mysql.jdbc.Driver"
        url="jdbc:mysql://localhost:3306/BookTracker" user="root" password="school" />

    <sql:query dataSource="${snapshot}" var="result">
SELECT * from BookTrackerSystem;
</sql:query>

    <table border="1" width="100%">
        <tr>
            <th>Book ID</th>
            <th>Book Name</th>
            <th>Book Author</th>
            <th>Book Genre</th>
            <th>Book Description</th>
            <th>Book Due Date</th>
            <th>Book Status</th>
            <th>Full Name</th>
        </tr>
        <c:forEach var="row" items="${result.rows}">
            <tr>
                <td><c:out value="${row.id}" /></td>
                <td><c:out value="${row.bookName}" /></td>
                <td><c:out value="${row.bookAuthor}" /></td>
                <td><c:out value="${row.bookGenres}" /></td>
                <td><c:out value="${row.bookDesc}" /></td>
                <td><c:out value="${row.bookDueDate}" /></td>
                <td><c:out value="${row.bookStatus}" /></td>
                <td><c:out value="${row.fullname}" /></td>
            </tr>
        </c:forEach>
    </table>
</body>
</html>

我想要做什么,使用一个简单的文本框我希望能够过滤使用上面的代码显示的表格,我相信我可以使用 jQuery 来做到这一点,但 jQuery 与表达式语言兼容,或者我可以使用任何其他方法的?

4

1 回答 1

0

尽管事实上几乎没有人会支持你所做的事情:) .. 我的意思是一切都在 JSP 中..

确切的答案如下:

  1. 添加带有文本框的 html 表单。

  2. 添加将文本框值读取为 request.getParameter() 的代码。 http://www.tutorialspoint.com/jsp/jsp_form_processing.htm

  3. 将 (2) 中的值添加到您的查询<sql:param value="..." />和添加where子句中。也许,您将需要 IF 来处理两种情况:a) 过滤掉 - 没有文本值,也没有whereb) 过滤 - 文本值存在并where使用。

不过,这将是一个服务器端处理(过滤)。

如果您想要客户端过滤,请考虑使用 DataTables http://www.datatables.net/

于 2013-04-15T01:24:12.217 回答