【问题标题】:How can I filter a table displayed using Expression Language in JSP?如何过滤使用 JSP 中的表达式语言显示的表?
【发布时间】:2013-04-14 21:42:49
【问题描述】:

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

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

【问题讨论】:

  • jQuery 是 JavaScript。 JavaScript 在浏览器中运行,在页面已经使用服务器端的 EL 生成很久之后。它所看到的只是生成的 HTML 页面,它当然可以过滤它,不管这个 HTML 是使用 JSP EL、PHP 还是你能想象的任何东西生成的。
  • 我实际上在考虑任何我可以利用的基于 Java 的技术。
  • 然后您需要发送一个包含在文本框中输入的值作为参数的请求,执行适当的查询,并重新生成页面(或仅表,如果您使用 AJAX)。问题出在哪里?

标签: java jsp jstl


【解决方案1】:

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

确切的答案如下:

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

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-06-03
    • 1970-01-01
    • 2021-12-10
    • 1970-01-01
    • 2012-01-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多