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