spring mvc+ajax分页[通俗易懂]

spring mvc+ajax分页

大家好,又见面了,我是全栈君。

分页大致思路:页面每次把当前页传到后台并获得从后台传过来的json数据,解析后布局到这个页面上。

1.服务端代码:

@Controller
public class MemcachedContrller {
@Autowired
private MemcacheReadService memcacheRead ; 

private static final Logger LOG = Logger.getLogger(MemcachedContrller.class);

//页面初始化
@RequestMapping(value=”/memcached”,method={RequestMethod.GET,RequestMethod.POST})
public ModelAndView memcachedDisplay() {
list.clear();
getMemcachedAll();
return new ModelAndView(“/memcached/memcachedShow”);
}

//运行上一页、下一页等操作时候运行
@RequestMapping(value = “/memcached/h2”, method = { RequestMethod.POST})
@ResponseBody
public List h2(HttpServletRequest request,
 HttpServletResponse response) throws Exception {
  String dt=request.getParameter(“dt”);
  int current=Integer.parseInt(dt);
  return  result(current);
}

//页面刷新的时候运行
@RequestMapping(value = “/memcached/h3”, method = { RequestMethod.POST})
@ResponseBody
public List h3(HttpServletRequest request,
 HttpServletResponse response) throws Exception {
  String dt=request.getParameter(“dt”);
  int current=Integer.parseInt(dt);
 // System.out.println(dt);
  list.clear(); //清空集合中全部数据
  getMemcachedAll();//获取最新的memcached数据
  return  result(current);
}

List list = new ArrayList();

//获取memcached数据
public List getMemcachedAll(){
  /*for(int i=0;i<10000;i++){
 JsonData p= new JsonData();
 p.setGIX_X(“a”+i);
     p.setId(“1″+i);
 p.setGIY_Y(“a_b”+i);
 list.add(p);
  }
return list;*/
Map<String,String> data=memcacheRead.read();
Set<String> set=data.keySet();
Iterator iter = set.iterator();
int i=0;
List list = new ArrayList();
while(iter.hasNext()){
String key = (String)iter.next();
if(memcacheRead.get(key)!=null){
/*if(i==5) break;
i=i+1;
System.out.println(key);//获取key
System.out.println(get(key));//获取缓存中key相应的value*/
if(i==100) break;
i=i+1;
String[] strSplit=memcacheRead.get(key).toString().split(“–“);
JsonData p= new JsonData();
p.setGIX_X(strSplit[0]);
p.setId(key);
p.setGIY_Y(strSplit[1]);
list.add(p);
}
}
return list;
//return memcacheRead.getAllValue();
}

//将结果集处理后返回
public List result(int dt){
 int pageSize=40;
  ArrayList list2 = new ArrayList();
    Page pg=new Page(list.size(),dt,pageSize);
PageMessage pm=new PageMessage();
pm.setPagecount(pg.getPagecount());
if(dt<pg.getPagecount()){
for(int i=(dt-1)*40;i<dt*40;i++){
list2.add(list.get(i));
}}
else{
for(int i=(dt-1)*40;i<list.size();i++){
list2.add(list.get(i));
}
}
list2.add(pm);
return list2;
}


}

2.前端代码:

morePage.css

body{ 
font-size:18px;
text-align:30%;

table{ 
border-collapse:collapse; 

li{ 
list-style:none; 
border:1px solid; 
width:20px; 
height:20px; 
text-align:center; 
margin:5px; 
padding:2px; 
float:left; 
cursor:pointer; 
}
#dataDisplay{
margin-left:30%;
margin-top:20px;
}

js:

var current=0;
var t=0;
function test2(dt){
window.t=dt;
$.ajax({
url:”/bdms-web/memcached/h2?

dt=”+dt,
type:’POST’,
dataType:’json ‘,
timeout:2000,
cache:false,
error:function(resultData){
alert(“xml”);
},

success:function(resultData){

  showPage(resultData,dt);     
}
})}

function update(dt){
//window.t=dt;
$.ajax({
url:”/bdms-web/memcached/h3?

dt=”+dt,
type:’POST’,
dataType:’json ‘,
timeout:2000,
cache:false,
error:function(resultData){
alert(“xml”);
},

success:function(resultData){

  showPage(resultData,dt);     
}
})}

function showPage(resultData,dt){
var fristpagehtml;
var prevpagehtml; 
var nextpagehtml;
var lastpagehtml;
var gopagehtml;
var length =resultData.length;
var t=resultData[length-1].pagecount;
gopagehtml=”<input id=’edit_count’ size=’4′ type=’text’ /> <input type=’button’  value=’go’ onclick=’test3();’/>”;

fristpagehtml = “<a onclick=’test2(“+(0+1)+”);’ href=’javascript:void(0);’>首页</a>”;
if((dt-0)<=1){
prevpagehtml = “<a>上一页</a>”;
}else{
prevpagehtml = “<a onclick=’test2(“+(dt-1)+”);’ href=’javascript:void(0);’>上一页</a>”;
}
if((dt-0)<(t-0)){
nextpagehtml = “<a onclick=’test2(“+(dt-0+1)+”);’ href=’javascript:void(0);’>下一页</a>”;
}else{
nextpagehtml = “<a>下一页</a>”;
}

lastpagehtml = “<a onclick=’test2(“+t+”);’ href=’javascript:void(0);’>未页</a>”;

var html = “<table border=1px  style=’font-size: 12px; color: red; text-align:center’><tr><td width=’160′>ID</td><td width=’200′>GIX_X</td><td width=’160′>GIX_Y</td></tr>”;
   for(var i=0;i<resultData.length-1;i++){
   
   html = html+ “<tr ><td>”
   +resultData[i].id+”</td><td>”
   +resultData[i].GIX_X+”</td><td>”
   +resultData[i].GIY_Y
   +”</td></tr>”;
   }
html = html + “<tr ><td colspan=3 text-align=center>”+fristpagehtml+”&nbsp&nbsp”+prevpagehtml+”&nbsp&nbsp”+”共”+resultData[length-1].pagecount+”页&nbsp;当前第”+dt+”页”+”&nbsp&nbsp”+nextpagehtml+”&nbsp&nbsp”+lastpagehtml+”&nbsp&nbsp”+gopagehtml+”</td></tr>”;
html = html+”</table>”;
document.getElementById(“div”).innerHTML=html; 

}

function test3(){
var str=document.getElementById(“edit_count”).value;
test2(str);
}
setInterval(‘update(window.t)’,1000*10);
/*function tt()
{
alert(“hello”);

}
setInterval(‘tt()’,1000*15);*/
//setTimeout(‘tt()’,15000); 

jsp:

memcachedShow.jsp

<%@ page language=”java” contentType=”text/html; charset=UTF-8″
    pageEncoding=”UTF-8″%>
<%@ taglib prefix=”c” uri=”http://java.sun.com/jsp/jstl/core” %>
<!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=UTF-8″>
<title>Insert title here</title>
<link rel=”stylesheet”  type=”text/css”  href=”<c:url value=”/style/css/morePage.css” />”/>
<script type=”text/javascript” src=”<c:url value=”/js/jquery.js” />”></script>
<script type=”text/javascript” src=”<c:url value=”/js/jquery.min.js” />”></script>
<script type=”text/javascript” src=”<c:url value=”/js/AjaxPage.js” />”></script>
<!–<script type=”text/javascript” src=”/script/AjaxPage.js”></script> –>
</head>
<body onload=’test2(1)’>
<!– <p style=”text-align:center”><input type=”button” size=”10″  value=”提交” onclick=”validate();”/></p> –>
<center>
  <div id=”div”> </div>
</center>
  <!–<form action=”update” method=”post”><input type=”submit” value=”xml生成”></form> –>

</body>
</html>

页面效果:

模拟后台数据:

//获取memcached数据
public List getMemcachedAll(){
  for(int i=0;i<10000;i++){
 JsonData p= new JsonData();
 p.setGIX_X(“a”+i);
     p.setId(“1″+i);
 p.setGIY_Y(“a_b”+i);
 list.add(p);
  }
return list;

spring mvc+ajax分页[通俗易懂]

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/115468.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 学习 Web 开发技术的16个最佳教程网站和博客

    学习 Web 开发技术的16个最佳教程网站和博客互联网经过这么多年的发展,已经出现了众多的Web开发技术,像.Net/Java/PHP/Python/Ruby等等。对于Web开发人员来说,不管是初学者还是有一定经验的开发人员都需要时刻学

    2022年8月6日
    3
  • Python 技巧篇-pip卸载python库实例演示,查看pip命令大全方法[通俗易懂]

    Python 技巧篇-pip卸载python库实例演示,查看pip命令大全方法[通俗易懂]Python技巧篇-pip卸载python库实例演示,查看pip命令大全方法。因为安装的PyHook3没安装对吧,有点问题,就想着把它卸载掉,然后再重新安装一个,那应该怎么卸载呢?非常简单,就是pipuninstallxxx,正好和我们安装时的pipinstallxxx对应,下面还有一个确定操作,填y就是继续了,n就是取消了。python库卸载演示。cmd直接输入pip,回车就可以看到pip的命令大全了。

    2022年10月18日
    3
  • wifi网速慢的原因及解决办法_wifi连接速度不稳定

    wifi网速慢的原因及解决办法_wifi连接速度不稳定最近在家上网,突然wifi贼jb慢了,连信号也不满格了。脑补了下,估计是附近的wifi频段和我们家冲突了。于是yahoo了下,老外推荐软件NetStubler。兴冲冲地下载了一个,结果在我机器上用不了,搜索了下原因,不了了之。于是放弃,问了下度娘,给我推荐了Homedale,不错,还是国产搜索靠谱啊。果然,我家默认的频段为802.11g的channel1,附近有个家伙信号很

    2022年10月20日
    3
  • Advanced System Care官方下载(附激活码)

    Advanced System Care官方下载(附激活码)iobit公司出品的一款系统辅助工具AdvancedSystemCare,它通过对系统全方位的诊断,找到系统性能的瓶颈所在,并将测试结果显示出来。针对系统的瓶颈对其优化,提高效率发挥最大的性能,通过优化后系统性能和网络速度都会有明显提升包含基本功能,注册表清理,垃圾文件清理等。现今系统清理,系统优化工具满天飞,可是很少有对系统全方位的诊断,找到系统性能的瓶颈所在,然后有针对性地进行修改、优化…

    2022年10月20日
    2
  • 【数据分析报告】携程客户分析与流失预测

    【数据分析报告】携程客户分析与流失预测目录一、项目背景与目的二、探索性分析2.1数据指标预览2.2数据概况2.3数据分布2.3.1数据分布总览2.3.2预定日期和入住日期2.3.3访问时间段2.3.4客户价值2.3.5消费能力指数2.3.6价格敏感指数分布2.3.6入住酒店平均价格2.3.7酒店星级偏好2.3.8订单取消率2.3.9用户年订单数分布2.3.10新老客户流失率三、数据预处理3.1去除不需要的字段与重复字段3.2数据类型转换3.3异常值处理3.3.1负数处理3.3.2极值处理3.4缺失值处理3.

    2022年10月18日
    4
  • golang map转json

    golang map转json““//maptojsonpackagemainimport(“encoding/json”“fmt”)funcmain(){s:=[]map[string]interface{}{}m1:=map[string]interface{}{“name”:”John”,”age”:10}m2:=map[string]interface{}{“

    2022年6月20日
    33

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号