首页 > 编程语言 > 详细

KendoUI Grid 前后端(Java) 完整案例之查询翻页

时间:2015-05-25 02:09:43      阅读:428      评论:0      收藏:0      [点我收藏+]

KendoUI Grid 前后端(Java 代码参考)(以下案例基于springmvc + freemarker + MyBatis + RequireJS )

前端:demo.js

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
require([‘lib/domReady!‘],?????function?()?{
?
????kendo.culture("zh-CN");
?
????$("#grid").kendoGrid({
????????dataSource:?{
????????????transport:?{
????????????????read:?{
????????????????????url:?CONTEXT_PATH?+?"/api/teedm01",
????????????????????dataType:?"json"
????????????????}
????????????},
????????????pageSize:?10,
????????????serverPaging:?true,
????????????serverSorting:?true,
????????????serverFiltering:?true,
????????????schema:?{
????????????????data:?function?(d)?{?return?d.data;?},
????????????????total:?function?(d)?{?return?d.count;?}
????????????}
????????},
????????height:?300,
????????selectable:?"multiple?cell",
????????pageable:?true,
????????sortable:?true,
????????columns:?[
????????????{
????????????????field:?"companyCode",
????????????????title:?"公司代码"
????????????},
????????????{
????????????????field:?"companyName",
????????????????title:?"公司名称"
????????????},
????????????{
????????????????field:?"companyTel",
????????????????title:?"公司电话"
????????????},
????????????{
????????????????field:?"companyAddr",
????????????????title:?"公司地址"
????????????},
????????????{
????????????????field:?"countryCode",
????????????????title:?"国家代码"
????????????},
????????????{
????????????????field:?"companyDate",
????????????????title:?"公司成立日期"
????????????}
????????]
????});
?
});

?

1
<span style="font-family: 微软雅黑, ‘Microsoft YaHei‘;"><br></span>

前端: demo.ftl

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<!DOCTYPE?html>
<html>
<head>
????<title>Grid单表展示</title>
????<#import?"spring.ftl"?as?spring?/>
????<link?rel="stylesheet"?type="text/css"?href="<@spring.url?‘/avatar/plugins/kendoui/styles/kendo.common.min.css‘/>"/>
<link?rel="stylesheet"?type="text/css"?href="<@spring.url?‘/avatar/plugins/kendoui/styles/kendo.blueopal.min.css‘/>"/>
<link?rel="stylesheet"?type="text/css"?href="<@spring.url?‘/avatar/styles/default/css/style.css‘/>">
<link?rel="stylesheet"?type="text/css"?href="<@spring.url?‘/avatar/styles/base.css‘/>">
?
</head>
<body>
????<div?id="example"?style="margin:?0?auto?;width:?1000px;padding:?10px;">
????????<div?id="grid"></div>
????</div>
?
????<script?data-main="<@spring.url?‘/avatar/demo/grid/basic/app.js‘/>"?src="<@spring.url?‘/avatar/js/lib/require.js‘/>"?></script>
</body>
</html>

Java后端控制器:DemoController.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
import?org.springframework.stereotype.Controller;
import?org.springframework.ui.ModelMap;
import?org.springframework.web.bind.annotation.RequestMapping;
import?org.springframework.web.bind.annotation.RequestMethod;
?
@Controller
@RequestMapping("/grid")
public?class?DemoController{
?
???@RequestMapping(value="/basic",?method=RequestMethod.GET)
???public?String?show(ModelMap?model)?{
??????return?"demo.ftl";
???}
}

?

Java后端Rest接口:DemoApi.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
import?com.kedacom.avatar.common.entity.PageResultEntity;
import?com.kedacom.avatar.common.entity.ResultEntity;
import?com.kedacom.avatar.core.anotation.mapping.*;
import?com.kedacom.avatar.core.base.BaseResource;
import?com.kedacom.avatar.core.dao.mapper.MapperExample;
import?com.kedacom.avatar.core.web.Query;
import?com.kedacom.avatar.demo.grid.model.Teedm01;
import?org.springframework.http.ResponseEntity;
import?org.springframework.web.bind.annotation.*;
import?org.springframework.web.context.request.WebRequest;
?
import?java.util.Map;
?
@RestController
@RequestMapping("/api/teedm01")
public?class?Teedm01Api?extends?BaseResource<Teedm01>?{
?
????@GetManyRequestMapping
????public?PageResultEntity<Teedm01>?selectByMapper(?@RequestParam?Map<String,Object>?params?){
?
????????int?offset?=?Query.getOffset(?params?);
????????int?limit?=?Query.getLimit(params);
?
????????return?super.selectByMap(?params,?offset,?limit);
????}
?
????@CountRequestMapping
????private?ResponseEntity?count(?WebRequest?webRequest?){
?
????????return?super.countByExample(new?MapperExample());
????}
?
????@GetOneRequestMapping
????public?Teedm01?selectByKey(?@PathVariable("id")?String?id??){
????????return?super.selectByKey(?id?);
????}
?
????@PutRequestMapping
????public?ResponseEntity<ResultEntity>?update(?@RequestBody?Teedm01?t?){
????????return?super.update(?t?);
????}
?
????@PostRequestMapping
????public?ResponseEntity<ResultEntity>?insert(?Teedm01?t?){
?
????????return?super.insert(?t?);
????}
?
????@DeleteRequestMapping
????public?ResponseEntity<ResultEntity>?delete(?@PathVariable("id")?String?id?){
?
????????return?super.delete(?id?);
????}
}

?

Java后端工具类:Query.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
import?org.springframework.util.StringUtils;
?
import?java.util.Map;
?
public?class?Query?{
?
????public?static?final?String?OFFSEET?=?"skip";
?
????public?static?final?String?LIMIT?=?"pageSize";
?
????public?static?final?int?DEFAULT_OFFSET?=?0;
?
????public?static?final?int?DEFAULT_LIMIT?=?10;
?
????public?static?int?getOffset(?Map?params?){
?
????????Object?offset?=?params.get(?OFFSEET?);
????????if(!StringUtils.isEmpty(?offset?)){
?
????????????try?{
????????????????return?Integer.parseInt(offset.toString());
????????????}catch?(?NumberFormatException?e?){
????????????????return?DEFAULT_OFFSET;
????????????}
????????}
????????return?DEFAULT_OFFSET;
????}
?
????public?static?int?getLimit(?Map?params?){
?
????????Object?limit?=?params.get(?LIMIT?);
????????if(!StringUtils.isEmpty(?limit?)){
?
????????????try?{
????????????????return?Integer.parseInt(limit.toString());
????????????}catch?(?NumberFormatException?e?){
????????????????return?DEFAULT_LIMIT;
????????????}
????????}
????????return?DEFAULT_LIMIT;
????}
?
}

?

Java后端Rest集成基类:BaseResource.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
import?com.kedacom.avatar.common.ResultStatus;
import?com.kedacom.avatar.common.entity.PageResultEntity;
import?com.kedacom.avatar.common.entity.ResultEntity;
import?com.kedacom.avatar.common.entity.ResultEntityBuilder;
import?com.kedacom.avatar.core.dao.mapper.MapperExample;
import?org.apache.ibatis.session.RowBounds;
import?org.springframework.beans.factory.annotation.Autowired;
import?org.springframework.http.HttpStatus;
import?org.springframework.http.ResponseEntity;
import?org.springframework.web.context.request.WebRequest;
?
import?java.util.HashMap;
import?java.util.Iterator;
import?java.util.List;
import?java.util.Map;
?
public?abstract?class?BaseResource<T>?{
?
????@Autowired
????protected?BaseService<T>?baseService;
?
????public?PageResultEntity<T>?selectByExample(MapperExample?example,?int?skip,?int?pageSize){
?
????????RowBounds?rowBounds?=?new?RowBounds(skip,?pageSize);
?
????????List<T>?ts?=?baseService.selectByExample(example,?rowBounds);
????????int?count?=?baseService.countByExample(example);
?
????????PageResultEntity<T>?pageResultEntity?=?new?PageResultEntity<T>();
????????pageResultEntity.setData(?ts?);
????????pageResultEntity.setCount(?count?);
?
????????return?pageResultEntity;
????}
?
????public?PageResultEntity<T>?selectByMap(Map<String,?Object>?params,?int?skip,?int?pageSize){
?
????????PageResultEntity<T>?pageResultEntity?=?getPageResultEntity(params,?skip,?pageSize);
????????return?pageResultEntity;
????}
?
????protected?PageResultEntity<T>?getPageResultEntity(Map<String,?Object>?params,?int?skip,?int?pageSize)?{
????????RowBounds?rowBounds?=?new?RowBounds(skip,?pageSize);
?
????????List<T>?ts?=?baseService.selectByMap(params,?rowBounds);
????????int?count?=?baseService.countByMap(params);
?
????????PageResultEntity<T>?pageResultEntity?=?new?PageResultEntity<T>();
????????pageResultEntity.setData(?ts?);
????????pageResultEntity.setCount(?count?);
????????return?pageResultEntity;
????}
?
????public?PageResultEntity<T>?select(WebRequest?request,int?skip,?int?pageSize??)?{
????????HashMap?params?=?new?HashMap();
????????Iterator<String>?it?=?request.getParameterNames();
????????while?(it.hasNext())
????????{
????????????String?key?=?it.next();
????????????if(!key.equals("take")&&!key.equals("page")&&!key.equals("pageSize")&&!key.equals("skip"))
????????????????params.put(key,request.getParameter(key));
????????}
?
????????PageResultEntity<T>?pageResultEntity?=?getPageResultEntity(params,?skip,?pageSize);
????????return?pageResultEntity;
????}
?
?
????public?ResponseEntity<ResultEntity>?countByExample(MapperExample?example){
?
????????int?count?=?baseService.countByExample(example);
????????return?new?ResponseEntity<ResultEntity>(ResultEntityBuilder.build().result(?String.valueOf(?count?)?),?HttpStatus.OK);
????}
?
????public?T?selectByKey(?String?id??){
????????T?t?=baseService.selectByKey(?id?);
????????return?t;
????}
?
????public?ResponseEntity<ResultEntity>?update(?T?t?){
????????baseService.updateByKey(?t?);
????????ResultEntity?resultEntity?=?ResultEntityBuilder.build().status(ResultStatus.SUCCESS).msg(?"更新操作成功."?);
????????ResponseEntity<ResultEntity>?responseEntity?=?new?ResponseEntity<ResultEntity>(?resultEntity,?HttpStatus.OK);
????????return?responseEntity;
????}
?
????public?ResponseEntity<ResultEntity>?insert(?T?t?){
????????baseService.insert(t);
?
????????ResultEntity?resultEntity?=?ResultEntityBuilder.build().status(ResultStatus.SUCCESS).msg(?"新增操作成功."?);
????????ResponseEntity<ResultEntity>?responseEntity?=?new?ResponseEntity<ResultEntity>(resultEntity,?HttpStatus.OK);
????????return?responseEntity;
????}
?
????public?ResponseEntity<ResultEntity>?insertPatch(?List<T>?t?){
????????baseService.insertPatch(t);
?
????????ResultEntity?resultEntity?=?ResultEntityBuilder.build().status(ResultStatus.SUCCESS).msg(?"批量新增操作成功."?);
????????ResponseEntity<ResultEntity>?responseEntity?=?new?ResponseEntity<ResultEntity>(resultEntity,?HttpStatus.OK);
????????return?responseEntity;
????}
?
????public?ResponseEntity<ResultEntity>?delete(?String?id?){
?
????????baseService.deleteByKey(id);
?
????????ResultEntity?resultEntity?=?ResultEntityBuilder.build().status(ResultStatus.SUCCESS).msg(?"删除操作成功."?);
????????ResponseEntity<ResultEntity>?responseEntity?=?new?ResponseEntity<ResultEntity>(?resultEntity,?HttpStatus.OK);
????????return?responseEntity;
????}
}

?

Java后端业务逻辑Service:DemoService.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
import?com.kedacom.avatar.core.base.BaseService;
import?com.kedacom.avatar.demo.grid.model.Teedm01;
import?com.kedacom.avatar.logging.AvatarLogger;
import?com.kedacom.avatar.logging.AvatarLoggerFactory;
import?org.apache.ibatis.session.RowBounds;
import?org.springframework.cache.annotation.CacheEvict;
import?org.springframework.cache.annotation.CachePut;
import?org.springframework.cache.annotation.Cacheable;
import?org.springframework.stereotype.Service;
?
import?java.util.List;
import?java.util.Map;
?
@Service
public?class?DemoService?extends?BaseService<Demo>?{
?
????@Override
????public?Demo?selectByKey(?Object?key?){
?
?
????????return?super.selectByKey(?key);
????}
?
????@Override
????public??List<Demo>?selectByMap(Map<String,?Object>?params,?RowBounds?rowBounds)
????{
????????return?super.selectByMap(params,?rowBounds);
????}
?
????@Override
????public?int?updateByKey(?Demo?teedm01?)
????{
????????return?super.updateByKey(?teedm01?);
????}
?
????@Override
????public?int?deleteByKey(Object?key){
?
????????return?super.deleteByKey(?key?);
????}
}

?

KendoUI Grid 前后端(Java) 完整案例之查询翻页

原文:http://kendoui.iteye.com/blog/2213882

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!