如何过滤使用JSP中的表达式语言显示的表格?

时间:2013-04-14 21:42:50

标签: java jsp jstl

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

<%@ 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与Expression语言兼容,或者是否有任何其他方法我可以利用?

1 个答案:

答案 0 :(得分:0)

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

确切答案如下:

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

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

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

  4. 但这将是服务器端处理(过滤)。

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