2013-04-14 91 views
1

这是我用来显示数据库数据的代码。如何过滤在JSP中使用表达式语言显示的表格?

<%@ 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的兼容表达式语言还是有我可以使用的任何其他方法?

+1

jQuery是JavaScript。在服务器端使用EL生成页面很久以后,JavaScript就会在浏览器中运行。它看到的只是生成的HTML页面,当然也可以过滤它,不管这个HTML是使用JSP EL,PHP还是其他你能想象得到的。 –

+0

我真的在想任何我可以利用的基于Java的技术。 – user2259813

+0

然后,您将需要发送一个请求,其中包含在文本框中输入的值作为参数,执行适当的查询并重新生成页面(如果使用AJAX,则返回表格onl)。哪里有问题? –

回答

0

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

确切的答案如下:

  1. 添加HTML形式与文本框。

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

  3. 加入由式(2)到你的查询<sql:param value="..." />的价值,并添加where条款。也许,您需要两种情况下的IF:a)过滤 - 没有文本值,也没有b)过滤 - 文本值存在,并使用where

虽然这将是服务器端处理(过滤)。

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