实现在同一页面显示另一个页面的搜索结果需要使用Ajax技术,以下是步骤说明:
- 添加依赖和JS文件:在JSP页面中添加jQuery库和ajax请求相关的JS文件(如jquery.min.js和jquery.ajax.js等)。示例代码如下:
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script src="https://cdn.bootcdn.net/ajax/libs/jquery-ajax/1.12.4/jquery.ajax.min.js"></script>
- 编写搜索表单:用户在表单中输入搜索关键字并提交请求,将异步请求发送到服务器。示例代码如下:
<form id="search-form">
<input type="text" name="keyword" placeholder="输入关键字">
<button type="submit">搜索</button>
</form>
- 编写Ajax请求:通过Ajax请求将搜索关键字发送到服务器处理,并将结果返回给客户端。示例代码如下:
$(function() {
$('#search-form').submit(function(e) {
e.preventDefault();
var data = $(this).serialize(); //将表单数据序列化为查询字符串
$.ajax({
url: 'search.jsp', //搜索页面的地址
type: 'GET',
data: data,
success: function(response) {
//将搜索结果显示到当前页面
$('#search-result').html(response);
},
error: function(xhr, status, error) {
console.log(error);
}
});
});
});
- 编写搜索结果显示区域:在当前页面添加一个用于显示搜索结果的区域。示例代码如下:
<div id="search-result"></div>
- 在搜索结果页面(search.jsp)中编写搜索及结果展示逻辑,以及在该页面的头部添加
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
以支持中文编码。示例代码如下:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<%
String keyword = request.getParameter("keyword"); //获取查询关键字
//根据关键字查询数据库等数据,获取结果列表
List<String> resultList = new ArrayList<String>();
//将结果列表输出到页面
out.println("<ul>");
for (String result : resultList) {
out.println("<li>" + result + "</li>");
}
out.println("</ul>");
%>
通过以上五个步骤,就可以在JSP页面中使用Ajax实现在同一页面显示另一个页面的搜索结果。