本节采用技术:SpringMVC+Jetty+ExtJs4.2+Maven+MySQL5.1以上+SLF4J(前几节学习的大家不知道记住了没,现在来总结复习下,顺便加点新技术)
学习本节前的准备:Eclipse高版本,Jetty插件,Maven插件,JDK1.7
休息了好久没开动教程了,确实最近太累了,大家见谅!先来看下效果,本章节是连续篇,今天是续篇的第一讲,前面都是静态讲解,大家是不是觉得不过瘾啊?咱学Java的嘛,当然得和Java的技术结合讲解咯,前面也说到以后会用动态数据讲解的。一、准备工作,创建MySQL数据库shuyangyang
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
|
/*
Navicat MySQL Data Transfer
Source Server : localhost
Source Server Version : 50133
Source Host : localhost:3306
Source
Database
: shuyangyang
Target Server Type : MYSQL
Target Server Version : 50133
File Encoding : 65001
Date
: 2014-02-18 23:04:49
*/
SET
FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for `t_users`
-- ----------------------------
DROP
TABLE
IF EXISTS `t_users`;
CREATE
TABLE
`t_users` (
`ID`
int
(255)
NOT
NULL
AUTO_INCREMENT,
`
Name
`
varchar
(255)
DEFAULT
NULL
,
`age`
smallint
(6)
DEFAULT
NULL
,
`Address`
varchar
(255)
DEFAULT
NULL
,
`CardID`
varchar
(255)
DEFAULT
NULL
,
`Role`
varchar
(255)
DEFAULT
NULL
,
`DepartMent`
varchar
(255)
DEFAULT
NULL
,
`Sex`
varchar
(255)
DEFAULT
NULL
,
PRIMARY
KEY
(`ID`)
) ENGINE=MyISAM AUTO_INCREMENT=19
DEFAULT
CHARSET=utf8;
-- ----------------------------
-- Records of t_users
-- ----------------------------
INSERT
INTO
t_users
VALUES
(
'1'
,
'张三'
,
'20'
,
'北京市海淀区'
,
'342425199002131239'
,
'普通用户'
,
'用户组'
,
'男'
);
INSERT
INTO
t_users
VALUES
(
'2'
,
'李四'
,
'22'
,
'上海市长宁区'
,
'342425199107203116'
,
'管理员'
,
'管理组'
,
'女'
);
INSERT
INTO
t_users
VALUES
(
'3'
,
'王五'
,
'24'
,
'南京市'
,
'3426198920314669'
,
'客服人员'
,
'客服组'
,
'女'
);
INSERT
INTO
t_users
VALUES
(
'4'
,
'赵大头'
,
'23'
,
'南通市'
,
'3424198805134567'
,
'普通用户'
,
'用户组'
,
'男'
);
INSERT
INTO
t_users
VALUES
(
'5'
,
'孙国'
,
'21'
,
'山东省'
,
'3526199001234569'
,
'普通用户'
,
'用户组'
,
'男'
);
INSERT
INTO
t_users
VALUES
(
'6'
,
'测试'
,
'26'
,
'test'
,
'456489731312123'
,
'test'
,
'test'
,
'男'
);
INSERT
INTO
t_users
VALUES
(
'7'
,
'张三1'
,
'20'
,
'北京市海淀区'
,
'342425199002131239'
,
'普通用户'
,
'用户组'
,
'男'
);
INSERT
INTO
t_users
VALUES
(
'8'
,
'李四1'
,
'22'
,
'上海市长宁区'
,
'342425199107203116'
,
'管理员'
,
'管理组'
,
'女'
);
INSERT
INTO
t_users
VALUES
(
'9'
,
'王五1'
,
'24'
,
'南京市'
,
'3426198920314669'
,
'客服人员'
,
'客服组'
,
'女'
);
INSERT
INTO
t_users
VALUES
(
'10'
,
'赵大头1'
,
'23'
,
'南通市'
,
'3424198805134567'
,
'普通用户'
,
'用户组'
,
'男'
);
INSERT
INTO
t_users
VALUES
(
'11'
,
'孙国1'
,
'21'
,
'山东省'
,
'3526199001234569'
,
'普通用户'
,
'用户组'
,
'男'
);
INSERT
INTO
t_users
VALUES
(
'12'
,
'测试1'
,
'26'
,
'test'
,
'456489731312123'
,
'test'
,
'test'
,
'男'
);
INSERT
INTO
t_users
VALUES
(
'13'
,
'张三2'
,
'20'
,
'北京市海淀区'
,
'342425199002131239'
,
'普通用户'
,
'用户组'
,
'男'
);
INSERT
INTO
t_users
VALUES
(
'14'
,
'李四2'
,
'22'
,
'上海市长宁区'
,
'342425199107203116'
,
'管理员'
,
'管理组'
,
'女'
);
INSERT
INTO
t_users
VALUES
(
'15'
,
'王五2'
,
'24'
,
'南京市'
,
'3426198920314669'
,
'客服人员'
,
'客服组'
,
'女'
);
INSERT
INTO
t_users
VALUES
(
'16'
,
'赵大头2'
,
'23'
,
'南通市'
,
'3424198805134567'
,
'普通用户'
,
'用户组'
,
'男'
);
INSERT
INTO
t_users
VALUES
(
'17'
,
'孙国2'
,
'21'
,
'山东省'
,
'3526199001234569'
,
'普通用户'
,
'用户组'
,
'男'
);
INSERT
INTO
t_users
VALUES
(
'18'
,
'测试2'
,
'26'
,
'test'
,
'456489731312123'
,
'test'
,
'test'
,
'男'
);
|
二、搭好框架,后面我会提供源代码给大家下载的
三、最终效果,主要是框架中间的数据展示
前台界面代码(这里给出的是数据展示层代码,全部代码可以在文章结尾处下载):
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
|
// 表格配置开始
var
columns = [
{header:
'编号'
,dataIndex:
'id'
},
{header:
'名称'
,dataIndex:
'name'
},
{header:
'年龄'
,dataIndex:
'age'
},
{header:
'性别'
,dataIndex:
'sex'
,renderer:
function
(value){
if
(value==
'男'
){
return
"<span style='color:green;font-weight:bold';>男</span>"
;
}
else
{
return
"<span style='color:red;font-weight:bold';>女</span>"
;
}
,
{header:
'地址'
,dataIndex:
'address'
},
{header:
'身份证号码'
,dataIndex:
'cardId'
,width:150},
{header:
'角色'
,dataIndex:
'role'
},
{header:
'部门'
,dataIndex:
'departMent'
}
];
//转换原始数据为EXT可以显示的数据
var
store =
new
Ext.data.Store({
pageSize:13,
//每页显示几条数据
proxy:{
type:
'ajax'
,
url:
'/user/showUser'
,
reader:{
type:
'json'
,
totalProperty:
'total'
,
root:
'data'
,
idProperty:
'id'
}
},
fields:[
{name:
'id'
},
//mapping:0 这样的可以指定列显示的位置,0代表第1列,可以随意设置列显示的位置
{name:
'name'
},
{name:
'age'
},
{name:
'sex'
},
{name:
'address'
},
{name:
'cardId'
},
{name:
'role'
},
{name:
'departMent'
}
]
});
var
grid =
new
Ext.grid.GridPanel({
store: store,
columns: columns,
title:
'数据'
,
region:
'center'
,
//框架中显示位置,单独运行可去掉此段
loadMask:
true
,
//显示遮罩和提示功能,即加载Loading……
//forceFit:true //自动填满表格
bbar:
new
Ext.PagingToolbar({
store:store,
displayInfo:
true
,
//是否显示数据信息
displayMsg:
'显示第 {0} 条到 {1} 条记录,一共 {2} 条'
,
//只要当displayInfo为true时才有效,用来显示有数据时的提示信息,{0},{1},{2}会自动被替换成对应的数据
emptyMsg:
"没有记录"
//没有数据时显示信息
})
});
/加载数据
store.load({params:{start:0,limit:13}});
// 表格配置结束
|
这里的url请求地址是/user/showUser,这里请求的是SpringMVC的地址,看下面的Controller代码:
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
|
package
com.shyy.web.controller.anntation;
import
java.util.List;
import
javax.servlet.http.HttpServletRequest;
import
javax.servlet.http.HttpServletResponse;
import
org.slf4j.Logger;
import
org.slf4j.LoggerFactory;
import
org.springframework.stereotype.Controller;
import
org.springframework.web.bind.annotation.RequestMapping;
import
org.springframework.web.bind.annotation.ResponseBody;
import
com.shyy.web.controller.response.EmptyResponse;
import
com.shyy.web.controller.response.NormalResponse;
import
com.shyy.web.controller.response.Response;
import
com.shyy.web.entity.User;
import
com.shyy.web.service.UserService;
import
com.shyy.web.service.impl.UserServiceImpl;
@Controller
@RequestMapping
(
"/user/"
)
public
class
UserController {
Logger logger = LoggerFactory.getLogger(UserController.
class
);
UserService userService =
new
UserServiceImpl();
/**
* SpringMVC返回json数据
* @return
*/
@RequestMapping
(
"showUser"
)
@ResponseBody
public
Response resp(HttpServletRequest req, HttpServletResponse resp){
String start = req.getParameter(
"start"
);
//起始页
String limit = req.getParameter(
"limit"
);
//每页数量
int
index = Integer.parseInt(start);
int
pageSize = Integer.parseInt(limit);
List<User> list = userService.query(index,pageSize);
//获取所有用户数据
long
total = list.size();
if
(total>
0
){
logger.debug(
"now {}"
,
"返回用户数据。。。"
);
return
new
NormalResponse(list,userService.total());
}
else
{
logger.debug(
"now {}"
,
"用户数据为空!"
);
return
new
EmptyResponse();
}
}
}
|
最后的NormalResponse返回的是我封装的一个返回对象,如下代码所示:
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
|
package
com.shyy.web.controller.response;
public
class
NormalResponse
extends
Response {
public
NormalResponse(Object data) {
this
.setCode(ResponseCode.OK);
this
.setMessage(
""
);
this
.setData(data);
this
.setSuccess(
true
);
}
public
NormalResponse(Object data, Long total) {
this
.setCode(ResponseCode.OK);
this
.setMessage(
""
);
this
.setData(data);
this
.setSuccess(
true
);
this
.setTotal(total);
}
public
NormalResponse() {
this
.setCode(ResponseCode.OK);
this
.setMessage(
""
);
this
.setData(
null
);
this
.setSuccess(
true
);
}
}
|
本文转自shyy8712872 51CTO博客,原文链接:http://blog.51cto.com/shuyangyang/1408303,如需转载请自行联系原作者