bootstrap 信息服务器,Bootstrap中Datatable的服务器模式(真分页)

一. 使用场景

如果数据量较小,直接用"假分页"即可,但如果数据量较大,或者数据来源于webservice等导致数据获取的时间特别长,那么就需要用到服务器模式。

二. 准备工作

Bootstrap-3.3.7

datatables.min.css

datatables.min.js

三. 前端

1. htma4c26d1e5885305701be709a3d33442f.png

2. js

url_pattern是我写在properties.js中的一个全局变量

比如: url_pattern="http://127.0.0.1:8080/项目名/xxx/";

a4c26d1e5885305701be709a3d33442f.png

a4c26d1e5885305701be709a3d33442f.png

新增属性:

1. datatable每页显示的行数: "lengthMenu": [5,10, 25,

50]

四. 服务端

1. controller层

a4c26d1e5885305701be709a3d33442f.png

其实接收的参数根本没必要写这么多,直接用map即可,map中不仅包含datatable自身携带的如page、ordering之类的属性值,还囊括了我们自定义传入的属性值。非常方便。

2. Service层

a4c26d1e5885305701be709a3d33442f.png

a4c26d1e5885305701be709a3d33442f.png

a4c26d1e5885305701be709a3d33442f.png

3. PageData

a4c26d1e5885305701be709a3d33442f.png

4. AccessLog.java  该类中只要包含上述的属性即可。

五. 服务层还可以参考以下代码

//获取请求次数

privateString

draw ="0";

//数据起始位置privateString

start; //数据长度privateString

length; //总记录数privateString

recordsTotal ="0";

//过滤后记录数privateString

recordsFiltered ="";

//定义列名privateString[]

cols = {"name","proTopicName","missionName","areaName","fileformat","areaName","research","category"};

//获取客户端需要那一列排序privateString

orderColumn ="0";

//获取排序方式 默认为ascprivateString

orderDir ="asc";

//获取用户过滤框里的字符privateString

searchValue; publicvoidgetAllResultFiles()

throws IOException { //获取文件参数 HttpServletRequest request = ServletActionContext.getRequest();

draw=request.getParameter("draw");

start = request.getParameter("start");

length = request.getParameter("length");

orderColumn = request.getParameter("order[0][column]");

orderColumn = cols[Integer.parseInt(orderColumn)]; orderDir =

request.getParameter("order[0][dir]");

searchValue = request.getParameter("search[value]");

List sArray =newArrayList();

if(!searchValue.equals(""))

{//判断搜索框是否为空,添加查询条件

sArray.add("

name like '%"+

searchValue +"%'");

sArray.add("

fileformat like '%"+

searchValue +"%'");

} String individualSearch ="";

if(sArray.size()

==1)

{ individualSearch = sArray.get(0);

}elseif(sArray.size()

>1)

{ for(inti

=0;

i < sArray.size() -1;

i++) { individualSearch += sArray.get(i)

+"

or ";

} individualSearch += sArray.get(sArray.size()

-1);

} //获取数据库总记录数 recordsTotal=""+resultFilesService.getModelCount();

String searchSQL ="";

if(individualSearch

!="")

{ searchSQL ="

where "+

individualSearch; } searchSQL+="

order by "+

orderColumn +"

"+

orderDir; List

resultfilesList=resultFilesService.findResultfilesList(searchSQL,start,length);

if(searchValue

!="")

{ recordsFiltered =""+resultFilesService.getModelCount(searchSQL);

} else{

recordsFiltered = recordsTotal; } if(resultfilesList!=null)

{ ...//对数据进行处理

Mapinfo =newHashMap();

info.put("data",

resultfilesBeanList); info.put("recordsTotal",

recordsTotal); info.put("recordsFiltered",

recordsFiltered); info.put("draw",

draw); JSONObject jsonstr = JSONObject.fromObject(info);

System.out.println(jsonstr.toString());

results = jsonstr.toString(); } HttpServletResponse response =

ServletActionContext.getResponse();

response.setContentType("text/html;charset=UTF-8");

response.getWriter().write(results); response.getWriter().close();

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值