关于作业问题

关于作业问题

这个课程的粗略查询,我使用的是ajax异步查询,不需要提交按钮,就能显示查询的结果。

但是要对查询的内容进行分页,我这里是异步,不是通过request调转的页面,使用request.setArrtibute()设置参数,前端就无法获得,就没办法设置页数?

请问老师这个怎么解决?

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
好帮手慕珊 2018-04-07 12:05:11

可以参考如下代码。如果map中还存有List,那么就在for循环中再写一个循环遍历List集合。注意此处用到了net.sf.json.JSONObject类,可以在本课程教辅区下载相关jar包或自行搜索下载。祝学习愉快!

Servlet:

package cn.java.servlet;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.json.JSONArray;
import net.sf.json.JSONObject;
/**
 * Servlet implementation class MapServlet
 */
@WebServlet("/MapServlet")
public class MapServlet extends HttpServlet {
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
Map<String,String> map=new HashMap<String,String>();
map.put("001", "apple");
map.put("002", "banana");
map.put("003", "pear");
JSONObject json=JSONObject.fromObject(map);
response.getOutputStream().write(json.toString().getBytes("utf-8"));
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
}

JSP:

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://"
+ request.getServerName() + ":" + request.getServerPort()
+ path + "/";
%>
<base href="<%=basePath%>">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>map demo</title>
<script type="text/javascript"
src="<%=basePath%>/resources/js/jquery-1.4.2.js"></script>
</head>
<body>
<center>
<input type="submit" value="查询" id="search">
<table width="800px" cellspacing="0px" cellpadding="0px" border="1px">
<thead>
<tr>
<th>key</th>
<th>value</th>
</tr>
</thead>
<tbody id="cont">
<tr>
<td></td>
<td></td>
</tr>
</tbody>
</table>
</center>
</body>
<script type="text/javascript" >
$("#search").click(function(){
//单击查询按钮的时候触发ajax事件
$.ajax({
url:"<%=basePath%>/MapServlet",
type:"post",
data:{},
dataType:"json",
success:function(json){
  var s = null;
  for(var key in json) { 
  s = s+ "<tr><td>" + key +"</td><td>"+ json[key] + "</td></tr>";
     
  $("#cont>tr").remove();
  }
  $("#cont").html(s);
  }
});
});
</script>
</html>


好帮手慕珊 2018-04-06 11:16:16

可以把页数也放到json中返回,如果要返回的数据比较多,可以尝试把内容存放到一个Map中进行返回。祝学习愉快!

  • 提问者 刘翊扬 #1
    如果使用map集合。前端怎么对map集合进行遍历输出
    2018-04-06 11:20:43
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星

相似问题

登录后可查看更多问答,登录/注册

Java Web基础入门2018版
  • 参与学习       716    人
  • 提交作业       185    份
  • 解答问题       1363    个

会Java?懂前端基础?想学后台开发?那么,赶快来学习《Java Web入门》路径吧。本路径主要介绍Java Web的基础知识,并配有大量案例,定会让你收获多多!

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师