0
点赞
收藏
分享

微信扫一扫

JavaWeb24(ajax实现分页)

穆熙沐 2022-03-30 阅读 71
java

index界面为例

1由于是jQuery方式所以要引入jQuery类库并且另起一个jQuery块这是一切的源头!这里出错了后面将无法进行 接下来测试一下jQuery能不能用

	$(function(){
		alert(1);
	})

 弹出就可用了

2、写一个方法专门控制分页

function myf(pageIndex){
		//ajax
		$.post("page.do",{pid:pageIndex},function(data){
			alert(data);
		})
	}                 用的是$.post的方法

3、建立一个servlet类前缀看个人,建好之后doget,dopost然后就是设置req、resp的编码方式,接收pid

        int pageIndex=1;
		int pageSize=5;
		
		//接收pid
		String pid = req.getParameter("pid");
		if(pid!=null) {
			pageIndex=pid;
		}

上面的pid是int类型所以记得转一下 pageindex=integer.parseInt(pid);

4、调用biz层  用JSON将调用的集合转为String 再把响应传到客户端

//获取out
printWriter out = resp.getWriter();	
----------------------------------------
。。。。。。。。。。。。。。。。。。。。。。。
---------------------------------------
//调用biz层的分页方法
		IGoodsBiz igb = new GoodsBiz();
		List<Goods> ls = igb.getAllByPag(pageIndex, pageSize);
		
		//把集合转为String
		String str = JSON.toJSONString(ls);

        out.print(str);
		out.flush();
		out.close();

5、配置映射《注解方式》

 括号内写上对应的就可,同样需要重启服务器

当打开浏览器这样的效果时就可以开始下一步操作了

 6、循环遍历

回到index界面,将JSON格式的对象数组字符串转成js的对象数组,可以用js(eval)和jQuery的方法,演示用的是jQuery的    $.parseJSON(data);   接收  var ss =  $.parseJSON(data);这个时候ss相当于一个对象数组,接下里开始遍历 (拼接的方式)

$.each(ss,function(i,g){// ss那个地方放的是要遍历的对象, i下标,g元素=对象
			var sb="";
			$.each(ss,function(i,g){//下标,元素=对象
				sb+="<tr>"
					sb+="<td>"+g.gid+"</td>"
					sb+="<td>"+g.gname+"</td>"
					sb+="<td><img src='"+g.gpath+"'></td>"
				sb+="</tr>"
			}) 
		}) 

循环结束之后tr拼接好了,接下来接div(容器)赋值

	sb+="</tr>"
			}) 
			$("#aa").html(sb);
		})

 

将bady里的table都移到var sb里    1px那个部分要转义!!数据就会在框里了

var sb = "<table border=\"1px\"><tr align='center'><td>商品序号</td><td>商品名称</td><td>商品图片</td></tr>";
			//循环遍历
			$.each(ss,function(i,n){//下标,元素=对象
				sb++="<tr alingn='center'>";
					sb+="<td>"+n.gid+"</td>";
					sb+="<td>"+n.gname+"</td>";
					sb+="<td><img src ='"+n.gpath+"'/></td>";
					sb+="</tr>";
				
			})
			sb+="</table>";

 !!!!! 分页

按照常规来说,我们应该写上首页上一页和下一页,尾页<a href="page.dp?gid=1">首页</a>这样的格式写,但是这样会刷新一整个页面,所以我们要调div在“”里放myf()即可,这个时候运行的时候会报404,(a标签调用js要在调的方法前加上javascript:)为了方便区别,给每一个页取变量

在上面写的myf里的是页数,所以要改成类型type

pageindex现在没有了,暂且先判断

随即在里面写pageindex   if(type=='a'){//首页 pageindex=1;  }上一页就是pageindex-- 下一页就是pageindex++  末页按理说是最大值,(目前还没有),现将之前写的默认显示第一页改了,之前是myf(1),现在改为('a')为了用户友好,可以做上提示

接下来就是末页,dao方法 需要有个拿到总行数的方法,然后在goodbiz里写个最大值的封装,然后。就可以在servlet里获取最大页码了,(调最大值的那个封装方法,)goods为表名 记得跟自己数据库的表名保持一致 ,然后要将这个响应也输送到客户端去,这个时候需要用一个特殊字符来做拼接 out.print(str+"*"max);为什么用*号呢?str里有无数个逗号单引号冒号花括号,也不能用/,图片路径里/,到时候当数据跑到这个地方时全都会分割完了,图片路径里又的特殊符号不能用,str里包含的也不行,根据自身情况定,一定要是特殊字符!!!!

现在到index界面先用*分割(servlet的max和str(相当于index的data ))

要记得var x是一个数组!!

这个时候 x[0]代表JSON格式的对象数组字符串,  x[1]代表max值,所以parseJSON里的值不能放data了而是 x[0],

var max(给max赋值)并打印max ,如果值对了的话就可以在else{}里写上pageindex=max了,基本上就可以了,再来就是扩大作用域,将var max放置最上方,给末页判断,即可,如果想知道是不是拒不刷新的效果,可以设置一个空文本框然后输入一些字段进去,如果点击首页下一页那四个按钮文本框的值没有清空即可

举报

相关推荐

JavaWEB(AJAX实现分页)

JavaWeb(AJAX实现分页)

javaweb-23(AJAX实现分页)

Ajax实现分页

ajax实现无刷新分页

javaWEB(分页)

javaWeb(分页)

Javaweb (AJAX)

0 条评论