JAVA+树分页效果_json实现jsp分页实例介绍(附效果图)

json 在上篇文章已有详细介绍,json的既简单易懂,又传输迅速。并且能和javascript很好的融为一体。

在不需要添加jar的前提下,能够很好完成jsp分页问题。

下面具体介绍分页实例:

881c20244b3adfd5ac53183f9cf49c03.png 

效果如图所示,采用jsp+servlet技术

首先:编写一个javabean user.java

package bean;

public class user {

private int id;

private string name;

private string password;

private int age;

public user() {

super();

}

public user(int id, string name, string password, int age) {

super();

this.id = id;

this.name = name;

this.password = password;

this.age = age;

}

public int getid() {

return id;

}

public void setid(int id) {

this.id = id;

}

public string getname() {

return name;

}

public void setname(string name) {

this.name = name;

}

public string getpassword() {

return password;

}

public void setpassword(string password) {

this.password = password;

}

public int getage() {

return age;

}

public void setage(int age) {

this.age = age;

}

@override

public string tostring() {

//{'id':1,'name':'zhangsan','password':'123','age':1}

return "{'id':"+id+",'name':'"+name+"','password':'"+password+"','age':"+age+"}";

}

}

这里需要注意的 就是 tostring的方法的改变

然后:我们来编写它的control 层和dao层

为了简化代码,便于取值,数据库暂写为一个集合

可以看到,

1.service 接收request请求 得到页面所要展示当前页(为第page页)

2.创建一个字符串,向内依次添加 从数据库db 得到的user,并将所有数据封装

[{},{},{}]

3.将此字符串 返回到请求页面

package servlet;

import java.io.ioexception;

import java.io.printwriter;

import java.util.linkedlist;

import java.util.list;

import javax.servlet.servletexception;

import javax.servlet.http.httpservlet;

import javax.servlet.http.httpservletrequest;

import javax.servlet.http.httpservletresponse;

import bean.user;

public class paging extends httpservlet {

public static final int per_page = 3;

@override

protected void service(httpservletrequest request, httpservletresponse response)

throws servletexception, ioexception {

//分页 数据源 当前得到第几页的记录 每页显示多少条

int page = integer.parseint(request.getparameter("page"));

// page = 1 i = 0

//page = 2 3

int length = 0;//记录当前拿了多少条

stringbuffer sb = new stringbuffer();

sb.append("[");

//[{},{},{}]

string message = null;

if(page >= 1 && page <= 3){

for (int i = (page-1)*per_page; i < db.list.size()&&length < per_page; i++) {

user u = db.list.get(i);

sb.append(u.tostring()+",");

length++;

}

if(length > 0){

message = sb.substring(0, sb.length()-1)+"]";

}else{

message = sb.tostring()+"]";

}

}else{

response.setcontenttype("text/html;charset=utf-8");

response.getwriter().println("捣乱");

return;

}

response.setcontenttype("text/html;charset=utf-8");

response.getwriter().println(message);

}

}

class db{

public static list list = new linkedlist();

static{

list.add(new user(1,"zhangsan","zs",34));

list.add(new user(2,"lisi","ls",34));

list.add(new user(3,"a","h",34));

list.add(new user(4,"b","d",34));

list.add(new user(5,"c","g",34));

list.add(new user(6,"d","a",34));

list.add(new user(7,"e","d",34));

list.add(new user(8,"f","e",34));

list.add(new user(9,"g","a",34));

}

}

之后 :jsp的填写,通过ajax异步提交page,然后得到相应的字符串

var mgs = xmlhttprequest.responsetext;

var persons = mgs.evaljson();

将json数据解析 并添加到显示的区域

string path = request.getcontextpath();

string basepath = request.getscheme()+"://"+request.getservername()+":"+request.getserverport()+path+"/";

%>

my jsp 'regist.jsp' starting page

var paging = 0;

//

function page(p){

/*if(p == 'next' && paging < 3){

paging ++;

}else if(p == 'last' && paging > 1) {

paging --;

}else{

alert('错误');

}*/

if(p == 'next' && paging < 3){

paging ++;

if(paging > 1){

$(":button:eq(0)").removeattr('disabled');

}

if(paging == 3){

$(":button:eq(1)").attr('disabled','disabled');

}

}else if(p == 'last' && paging > 1){

paging --;

$(":button:eq(1)").removeattr('disabled');

if(paging == 1){

$(":button:eq(0)").attr('disabled','disabled');

}

}

createxmlhttprequest();

xmlhttprequest.onreadystatechange=back;

var url = encodeuri("/json_page/paging?page="+paging);

xmlhttprequest.open("get",url,true);

xmlhttprequest.send(null);

}

//假设名字为xmlhttprequest

function createxmlhttprequest(){

if(window.activexobject){

xmlhttprequest = new activexobject("microsoft.xmlhttp");

}else{

xmlhttprequest = new xmlhttprequest();

}

}

//回调函数

function back(){

if( xmlhttprequest.readystate == 4 && xmlhttprequest.status == 200){

var mgs = xmlhttprequest.responsetext;

var persons = mgs.evaljson();

//alert(mgs);

$("table").empty();

$("table").append( $("

id用户名密码age"));

for(var i = 0 ; i < persons.length;i++){

var person = persons[i];

var $tr = $("

"+person.id+""+person.name+""+person.password+""+person.age+"");

$("table").append($tr);

}

}

}

id用户名密码age

另外:要有这两个js哦

希望与广大网友互动??

点此进行留言吧!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实现 ES 聚合分页,可以使用 Elasticsearch 的 Java API 来编写代码。下面是一个简单的示例: ```java import org.elasticsearch.action.search.SearchResponse; import org.elasticsearch.client.transport.TransportClient; import org.elasticsearch.common.transport.InetSocketTransportAddress; import org.elasticsearch.index.query.QueryBuilders; import org.elasticsearch.search.aggregations.AggregationBuilders; import org.elasticsearch.search.aggregations.bucket.terms.Terms; import org.elasticsearch.search.aggregations.metrics.sum.Sum; import org.elasticsearch.search.sort.SortBuilders; import org.elasticsearch.search.sort.SortOrder; import org.elasticsearch.transport.client.PreBuiltTransportClient; import java.net.InetAddress; import java.util.List; import java.util.Map; public class AggregationPaginationExample { public static void main(String[] args) throws Exception { TransportClient client = new PreBuiltTransportClient(Settings.EMPTY) .addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("localhost"), 9300)); int pageSize = 5; int pageNumber = 1; SearchResponse response = client.prepareSearch("my_index") .setQuery(QueryBuilders.matchAllQuery()) .addAggregation( AggregationBuilders.terms("my_terms_agg") .field("my_field") .subAggregation(AggregationBuilders.sum("my_sum_agg").field("my_other_field")) .order(Terms.Order.aggregation("my_sum_agg", false)) .size(pageSize) .from((pageNumber - 1) * pageSize) ) .setSize(0) .get(); Terms termsAgg = response.getAggregations().get("my_terms_agg"); for (Terms.Bucket bucket : termsAgg.getBuckets()) { String key = bucket.getKeyAsString(); long docCount = bucket.getDocCount(); Sum sumAgg = bucket.getAggregations().get("my_sum_agg"); double sumValue = sumAgg.getValue(); System.out.println(key + ": " + docCount + " documents, sum = " + sumValue); } client.close(); } } ``` 这个示例使用了 Elasticsearch 的 Java API,查询一个名为 `my_index` 的索引,按照 `my_field` 字段进行分组,并计算每组中 `my_other_field` 字段的总和。然后按照总和排序,并使用分页参数进行分页。最后打印出每个分组的结果。 需要注意的是,聚合分页实现方式与普通的分页略有不同,具体可以参考上面的代码示例。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值