用JsonLib實現EXT裡的分頁

2021-05-25 03:05:47 字數 3121 閱讀 6513

效果圖:

以前做分頁一般都是在後台中拼接json格式的字串,然後返回到前台進行解析,能實現。。但是效率不大高。。

現在拿專門解析json格式的jsonlib,它所需要的jar檔案如下 :

前台頁面**:

ext.onready(function());

store.load(});          //第一次載入的時候傳遞起始條數和每頁的大小

var cm = new ext.grid.columnmodel([                      //定義列模型,,

,,,]);

var bbar = new ext.paging*******(條到第條的記錄,一共條記錄",

emptymsg:"沒有記錄"

});var grid = new ext.grid.gridpanel();

});在前台頁面中其它還是以前的知識,並沒有和以前有多大的不同,重點在後台**。。後台**:

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

printwriter out = response.getwriter();

int start = integer.parseint(request.getparameter("start"));  //得到起始條數和每頁和條數

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

int end = start + limit;

int totalproperty = 86;        //總資料條數

if(end>totalproperty)

listhumanlist = new arraylist();

for(int i=start; i利用    jsonlib來解析json

jsonobject jobject = jsonobject.fromobject(pagebean,jsonutil.configjson("yyyy-mm-dd"));    --重點3

out.print(jobject.tostring());

out.flush();

out.close();

既然是用json來解析字串,那就不用去考慮什麼字串拼接的問題,但是,json字串中的鍵也就是name:"張三"中的name我們還是要

知道的,那麼,我們定義了乙個human類來存放這些欄位的資訊

看重點1:

public class human );

store.load(});          //第一次載入的時候傳遞起始條數和每頁的大小

var cm = new ext.grid.columnmodel([                      //定義列模型,,

,,,]);

var bbar = new ext.paging*******(條到第條的記錄,一共條記錄",

emptymsg:"沒有記錄"

});var grid = new ext.grid.gridpanel();

});在前台頁面中其它還是以前的知識,並沒有和以前有多大的不同,重點在後台**中,下面看後台**:

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

printwriter out = response.getwriter();

int start = integer.parseint(request.getparameter("start"));  //得到起始條數和每頁和條數

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

int end = start + limit;

int totalproperty = 86;        //總資料條數

if(end>totalproperty)

listhumanlist = new arraylist();

for(int i=start; i利用    jsonlib來解析json

jsonobject jobject = jsonobject.fromobject(pagebean,jsonutil.configjson("yyyy-mm-dd"));    --重點3

out.print(jobject.tostring());

out.flush();

out.close();

既然是用json來解析字串,那就不用去考慮什麼字串拼接的問題,但是,json字串中的鍵也就是name:"張三"中的name我們還是要

知道的,那麼,我們定義了乙個human類來存放這些欄位的資訊

看重點1:

public class human );

jsonconfig.setignoredefaultexcludes(false);

jsonconfig.setcycledetectionstrategy(cycledetectionstrategy.lenient);

jsonconfig.registerjsonvalueprocessor(date.class, new jsondatevalueprocessor(datepattern));

return jsonconfig; } }

還需要乙個jsondatevalueprocessor類:注意,要新增對應的構造方法(有參和無參)和get、set方法

public class jsondatevalueprocessor implements jsonvalueprocessor ;

if (value instanceof date)

}return obj;

}public object processobjectvalue(string key, object value, jsonconfig jsonconfig)

return value == null ? null : value.tostring();

}至此,我們完成了以前我們拼接字串的複雜操作,省去了我們要進行手動拼接所帶來的麻煩:

和之前慣用的**進行一下比較吧:

if(end>totalproperty)

當然會選擇高階用法。。。哈哈。。

如何用JsonLib 來實現EXT中的分頁?

先來看下最後我們要實現的結果是什麼樣?先說說我們傳統上的做法!我們一般會在後台中拼接json格式的字串,然後返回到前台進行解析,那樣雖然能達到目的,但效率上肯定會大打折扣 而今天我們介紹的是專門用來解析json格式的jsonlib,它所需要的jar檔案如下 行,廢話不多說了,上 首先來看前台頁面 e...

裡用display block的作用

是塊元素,那在布局時候,在div的元素裡面寫display block有用嗎?回答 對所有的塊元素都沒有意義,塊元素的dispaly屬性預設值為block,沒必要再顯式定義 除非你之前對塊元素的display屬性重新定義過。多羅嗦一句 display block 比較常用於這兩個標籤 因為這兩個標籤...

如何讓Ext的RowExpander實現非同步呼叫

目前ext grid的rowexpander使用的模板,是在讀取grid同步載入,實際上這樣的處理並不是很好,如果資料量大的話,對效能會有一定影響,更好的處理方式是非同步載入,只有需要的時候再載入需要的資料。下面介紹如果實現 一,此檔案 這是國外乙個朋友擴充套件的rowexpander,我對比了幾種...