关于ajax局部刷新的问题
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path; request.setAttribute("showFlag", "false"); %> <!DOCTYPE html> <html> <head> <base href="<%=basePath%>"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>图书查询</title> <script type="text/javascript" src="<%=basePath%>/resources/js/jquery-1.4.2.js"></script> </head> <body> <center> <h1>图书查询</h1> <p> 图书ID:<input type="text" name="bookId" id="bookId"> 图书名:<input type="text" name="bookName" id="bookName"> 分类:<input type="text" name="categoryName" id="categoryName"> <input type="button" value="查询" id="search"> </p> <hr> <table width="800px" cellspacing="0px" cellpadding="0px" border="1px"> <thead> <tr> <th>图书ID</th> <th>书名</th> <th>分类</th> <th>价格</th> <th>描述</th> </tr> </thead> <tbody id="cont"> <c:choose> <c:when test="${show == 'true'}"> <c:forEach items="${applicationScope.bookList}" var="book"> <tr> <td id="tdBookId">${book.getBookId()}</td> <td id="tdBookName">${book.getBookName()}</td> <td id="tdBookCategory">${book.categoryName}</td> <td id="tdPrice">${book.getPrice()}</td> <td id="tdBookDesc">${book.getBookDesc()}</td> </tr> </c:forEach> </c:when> <c:otherwise> <c:forEach items="${applicationScope.temporary}" var="book"> <tr> <td id="tdBookId1">${book.getBookId()}</td> <td id="tdBookName1">${book.getBookName()}</td> <td id="tdBookCategory1">${book.categoryName}</td> <td id="tdPrice1">${book.getPrice()}</td> <td id="tdBookDesc1">${book.getBookDesc()}</td> </tr> </c:forEach> </c:otherwise> </c:choose> </tbody> </table> </center> </body> <script> $("#search").click(function () { $.ajax({ url:"<%=basePath%>/SelectBookServlet", type:"post", data:{ bookId:$("#bookId").val(), bookName:$("#bookName").val(), categoryName:$("#categoryName").val() }, dataType:"json", success:function (result) { if(result.flag == 1) alert("该书不存在"); else{ // var list = eval(result); // for(var i in list){ // $("#tdBookId").text(list[i].bookId); // $("#tdBookName").text(list[i].bookName); // $("#tdBookCategory").text(list[i].categoryName); // $("#tdPrice").text(list[i].price); // $("#tdBookDesc").text(list[i].bookDesc); // } window.location.href="<%=basePath%>/showBooks.jsp"; } } }); }); </script> </html>
如上代码所示,在ajax回调函数success里面使用window.location.href="<%=basePath%>/showBooks.jsp";算不算局部刷新呢???
2
收起
正在回答
2回答
同学你好,这里可以使用ajax局部刷新实现分类查询。定义一个查询的servlet,在该类中获取查询的参数,然后通过参数查询该书籍是否存在,存在则将满足条件的数据使用json回写给ajax,在showBook.jsp的ajax的回调函数中使用如下方式,将数据显示到页面。
success:function(result){ var bookList = eval(result); var content=null; if(bookList!=null){ for(var i in bookList){ var id = bookList[i].id; var bookName = bookList[i].bookName; var catgoryName = bookList[i].catgoryName; var price = bookList[i].price; var description = bookList[i].description; content = content+"<tr><td>"+id+"</td><td>"+bookName+"</td><td>"+catgoryName+"</td><td>"+price+"</td><td>"+description+"</td></tr>"; $("#cont>tr").remove(); } $("#cont").html(content); } }
如果我的回答解决了你的疑惑,请采纳。祝:学习愉快!
从网页搭建入门Java Web2018版
- 参与学习 人
- 提交作业 1088 份
- 解答问题 10205 个
如果你有Java语言基础,又想以后从事Java Web开发,那么本路径是你的不二选择!本路径从网页搭建开始入手,通过大量案例来学习Java Web基础。定能助你完成Java Web小白的蜕变!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星