SSh结合Easyui实现Datagrid的分页显示
来源:互联网 发布:后期剪辑软件 编辑:程序博客网 时间:2024/06/06 11:40
首先看一下要实现的效果:当每页显示5行数据:
当每页显示10行数据,效果如下:
具体步骤:
1、下载Easyui,并搭建环境。可参照博客 http://blog.csdn.net/lhq13400526230/article/details/9148299
2、搭建SSH工程,整个工程的目录结构如图所示:
3、在Oracle数据库中创建表Student。并且输入下面6行数据,因为添加操作还没有实现,所以先在数据库表中添加数据。默认设定的值是每行5个数据,所以请至少输入6行数据,便于分页的测试。
4、web.xml的配置
01
<?
xml
version
=
"1.0"
encoding
=
"UTF-8"
?>
02
<
web-app
version
=
"2.5"
xmlns
=
"http://java.sun.com/xml/ns/javaee"
03
xmlns:xsi
=
"http://www.w3.org/2001/XMLSchema-instance"
04
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
05
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
06
07
<!-- Sttuts2过滤器 -->
08
<
filter
>
09
<
filter-name
>struts2</
filter-name
>
10
<
filter-class
>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</
filter-class
>
11
</
filter
>
12
<
filter-mapping
>
13
<
filter-name
>struts2</
filter-name
>
14
<
url-pattern
>/*</
url-pattern
>
15
</
filter-mapping
>
16
17
<!-- 监听器Spring -->
18
<
listener
>
19
<
listener-class
>org.springframework.web.context.ContextLoaderListener</
listener-class
>
20
</
listener
>
21
22
<!-- 定位applicationContext.xml的物理位置 -->
23
<
context-param
>
24
<
param-name
>contextConfigLocation</
param-name
>
25
<
param-value
>classpath:applicationContext.xml</
param-value
>
26
</
context-param
>
27
28
</
web-app
>
5、applicationContext.xml的配置
01
<?
xml
version
=
"1.0"
encoding
=
"UTF-8"
?>
02
<
beans
xmlns
=
"http://www.springframework.org/schema/beans"
03
xmlns:xsi
=
"http://www.w3.org/2001/XMLSchema-instance"
xmlns:context
=
"http://www.springframework.org/schema/context"
04
xmlns:aop
=
"http://www.springframework.org/schema/aop"
xmlns:tx
=
"http://www.springframework.org/schema/tx"
05
xsi:schemaLocation="http://www.springframework.org/schema/beans
06
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
07
http://www.springframework.org/schema/context
08
http://www.springframework.org/schema/context/spring-context-2.5.xsd
09
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
10
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">
11
12
13
14
<
import
resource
=
"applicationContext_bean.xml"
/>
15
<
import
resource
=
"applicationContext_db.xml"
/>
16
</
beans
>
6、在com.model中创建模型类Student.java
01
package
com.model;
02
03
public
class
Student {
04
String studentid;
// 主键
05
String name;
// 姓名
06
String gender;
// 性别
07
String age;
// 年龄
08
09
public
String getStudentid() {
10
return
studentid;
11
}
12
13
public
void
setStudentid(String studentid) {
14
this
.studentid = studentid;
15
}
16
17
public
String getName() {
18
return
name;
19
}
20
21
public
void
setName(String name) {
22
this
.name = name;
23
}
24
25
public
String getGender() {
26
return
gender;
27
}
28
29
public
void
setGender(String gender) {
30
this
.gender = gender;
31
}
32
33
public
String getAge() {
34
return
age;
35
}
36
37
public
void
setAge(String age) {
38
this
.age = age;
39
}
40
41
}
7、根据Student.java生成对应的映射文件Student.hbm.xml
01
<?
xml
version
=
"1.0"
?>
02
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
03
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
04
<!-- Generated 2013-6-23 23:31:47 by Hibernate Tools 3.4.0.CR1 -->
05
<
hibernate-mapping
>
06
<
class
name
=
"com.model.Student"
table
=
"STUDENT"
>
07
<
id
name
=
"studentid"
type
=
"java.lang.String"
>
08
<
column
name
=
"STUDENTID"
/>
09
<
generator
class
=
"assigned"
/>
10
</
id
>
11
<
property
name
=
"name"
type
=
"java.lang.String"
>
12
<
column
name
=
"NAME"
/>
13
</
property
>
14
<
property
name
=
"gender"
type
=
"java.lang.String"
>
15
<
column
name
=
"GENDER"
/>
16
</
property
>
17
<
property
name
=
"age"
type
=
"java.lang.String"
>
18
<
column
name
=
"AGE"
/>
19
</
property
>
20
</
class
>
21
</
hibernate-mapping
>
8、编写接口StudentService.java
1
package
com.service;
2
3
import
java.util.List;
4
5
public
interface
StudentService {
6
public
List getStudentList(String page,String rows)
throws
Exception;
//根据第几页获取,每页几行获取数据
7
public
int
getStudentTotal()
throws
Exception;
//统计一共有多少数据
8
}
9、编写接口的实现类StudentServiceImpl.java
01
package
com.serviceImpl;
02
03
import
java.util.List;
04
05
import
org.hibernate.SessionFactory;
06
07
import
com.service.StudentService;
08
09
public
class
StudentServiceImpl
implements
StudentService {
10
private
SessionFactory sessionFactory;
11
12
// 根据第几页获取,每页几行获取数据
13
public
List getStudentList(String page, String rows) {
14
15
//当为缺省值的时候进行赋值
16
int
currentpage = Integer.parseInt((page ==
null
|| page ==
"0"
) ?
"1"
: page);
//第几页
17
int
pagesize = Integer.parseInt((rows ==
null
|| rows ==
"0"
) ?
"10"
: rows);
//每页多少行
18
19
List list =
this
.sessionFactory.getCurrentSession().createQuery(
"from Student"
)
20
.setFirstResult((currentpage -
1
) * pagesize).setMaxResults(pagesize).list();
21
22
return
list;
23
}
24
25
// 统计一共有多少数据
26
public
int
getStudentTotal()
throws
Exception {
27
return
this
.sessionFactory.getCurrentSession().find(
"from Student"
).size();
28
}
29
30
public
SessionFactory getSessionFactory() {
31
return
sessionFactory;
32
}
33
34
public
void
setSessionFactory(SessionFactory sessionFactory) {
35
this
.sessionFactory = sessionFactory;
36
}
37
38
39
}
10、配置连接数据库的配置文件applicationContext_db.xml
001
<?
xml
version
=
"1.0"
encoding
=
"UTF-8"
?>
002
<
beans
xmlns
=
"http://www.springframework.org/schema/beans"
003
xmlns:xsi
=
"http://www.w3.org/2001/XMLSchema-instance"
xmlns:context
=
"http://www.springframework.org/schema/context"
004
xmlns:aop
=
"http://www.springframework.org/schema/aop"
xmlns:tx
=
"http://www.springframework.org/schema/tx"
005
xsi:schemaLocation="http://www.springframework.org/schema/beans
006
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
007
http://www.springframework.org/schema/context
008
http://www.springframework.org/schema/context/spring-context-2.5.xsd
009
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
010
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">
011
012
013
<!-- 用Bean定义数据源 -->
014
<
bean
id
=
"dataSource"
class
=
"com.mchange.v2.c3p0.ComboPooledDataSource"
015
destroy-method
=
"close"
>
016
<!-- 定义数据库驱动 -->
017
<
property
name
=
"driverClass"
>
018
<
value
>oracle.jdbc.driver.OracleDriver</
value
>
019
</
property
>
020
<!-- 定义数据库URL -->
021
<
property
name
=
"jdbcUrl"
>
022
<
value
>jdbc:oracle:thin:@localhost:1521:orcl</
value
>
023
</
property
>
024
<!-- 定义数据库的用户名 -->
025
<
property
name
=
"user"
>
026
<
value
>lhq</
value
>
027
</
property
>
028
<!-- 定义数据库的密码 -->
029
<
property
name
=
"password"
>
030
<
value
>lhq</
value
>
031
</
property
>
032
<
property
name
=
"minPoolSize"
>
033
<
value
>1</
value
>
034
</
property
>
035
<
property
name
=
"maxPoolSize"
>
036
<
value
>40</
value
>
037
</
property
>
038
<
property
name
=
"maxIdleTime"
>
039
<
value
>1800</
value
>
040
</
property
>
041
<
property
name
=
"acquireIncrement"
>
042
<
value
>2</
value
>
043
</
property
>
044
<
property
name
=
"maxStatements"
>
045
<
value
>0</
value
>
046
</
property
>
047
<
property
name
=
"initialPoolSize"
>
048
<
value
>2</
value
>
049
</
property
>
050
<
property
name
=
"idleConnectionTestPeriod"
>
051
<
value
>1800</
value
>
052
</
property
>
053
<
property
name
=
"acquireRetryAttempts"
>
054
<
value
>30</
value
>
055
</
property
>
056
<
property
name
=
"breakAfterAcquireFailure"
>
057
<
value
>true</
value
>
058
</
property
>
059
<
property
name
=
"testConnectionOnCheckout"
>
060
<
value
>false</
value
>
061
</
property
>
062
063
</
bean
>
064
065
<!--定义Hibernate的SessionFactory -->
066
<
bean
id
=
"sessionFactory"
067
class
=
"org.springframework.orm.hibernate3.LocalSessionFactoryBean"
>
068
<!-- 定义SessionFactory必须注入dataSource -->
069
<
property
name
=
"dataSource"
>
070
<
ref
bean
=
"dataSource"
/>
071
</
property
>
072
<!-- 定义Hibernate的SessionFactory属性 -->
073
<
property
name
=
"hibernateProperties"
>
074
<
props
>
075
<
prop
key
=
"hibernate.dialect"
>
076
org.hibernate.dialect.Oracle10gDialect
077
</
prop
>
078
</
props
>
079
</
property
>
080
081
<!-- 定义POJO的映射文件 -->
082
<
property
name
=
"mappingResources"
>
083
<
list
>
084
<
value
>com/model/Student.hbm.xml</
value
>
085
</
list
>
086
</
property
>
087
</
bean
>
088
089
<!-- 配置事务拦截器 -->
090
<
bean
id
=
"transactionManager"
091
class
=
"org.springframework.orm.hibernate3.HibernateTransactionManager"
>
092
<
property
name
=
"sessionFactory"
ref
=
"sessionFactory"
/>
093
</
bean
>
094
095
<
tx:advice
id
=
"txAdvice"
transaction-manager
=
"transactionManager"
>
096
<
tx:attributes
>
097
<
tx:method
name
=
"save*"
propagation
=
"REQUIRED"
/>
<!-- 只有一save、delete、update开头的方法才能执行增删改操作 -->
098
<
tx:method
name
=
"delete*"
propagation
=
"REQUIRED"
/>
099
<
tx:method
name
=
"update*"
propagation
=
"REQUIRED"
/>
100
<
tx:method
name
=
"*"
propagation
=
"SUPPORTS"
read-only
=
"true"
/>
<!-- 其他方法为只读方法 -->
101
</
tx:attributes
>
102
</
tx:advice
>
103
104
<
aop:config
>
105
<
aop:pointcut
id
=
"interceptorPointCuts"
expression
=
"execution(* com.serviceImpl..*.*(..))"
/>
<!-- 对应实现类接口的包的位置 -->
106
<
aop:advisor
advice-ref
=
"txAdvice"
pointcut-ref
=
"interceptorPointCuts"
/>
107
</
aop:config
>
108
109
</
beans
>
11、在控制层编写StudentAction.java类型
01
package
com.action;
02
03
import
java.util.List;
04
05
import
javax.servlet.http.HttpServletRequest;
06
import
javax.servlet.http.HttpServletResponse;
07
08
import
net.sf.json.JSONObject;
09
10
import
org.apache.log4j.Logger;
11
import
org.apache.struts2.ServletActionContext;
12
13
import
com.service.StudentService;
14
15
public
class
StudentAction {
16
static
Logger log = Logger.getLogger(StudentAction.
class
);
17
private
JSONObject jsonObj;
18
private
String rows;
// 每页显示的记录数
19
private
String page;
// 当前第几页
20
private
StudentService student_services;
//String依赖注入
21
22
//查询出所有学生信息
23
public
String getAllStudent()
throws
Exception {
24
log.info(
"查询出所有学生信息"
);
25
26
List list = student_services.getStudentList(page, rows);
27
this
.toBeJson(list,student_services.getStudentTotal());
28
29
return
null
;
30
}
31
32
//转化为Json格式
33
public
void
toBeJson(List list,
int
total)
throws
Exception{
34
HttpServletResponse response = ServletActionContext.getResponse();
35
HttpServletRequest request = ServletActionContext.getRequest();
36
37
JSONObject jobj =
new
JSONObject();
//new一个JSON
38
jobj.accumulate(
"total"
,total );
//total代表一共有多少数据
39
jobj.accumulate(
"rows"
, list);
//row是代表显示的页的数据
40
41
response.setCharacterEncoding(
"utf-8"
);
//指定为utf-8
42
response.getWriter().write(jobj.toString());
//转化为JSOn格式
43
44
log.info(jobj.toString());
45
}
46
47
48
public
StudentService getStudent_services() {
49
return
student_services;
50
}
51
52
public
void
setStudent_services(StudentService student_services) {
53
this
.student_services = student_services;
54
}
55
56
public
void
setJsonObj(JSONObject jsonObj) {
57
this
.jsonObj = jsonObj;
58
}
59
60
public
void
setRows(String rows) {
61
this
.rows = rows;
62
}
63
64
public
void
setPage(String page) {
65
this
.page = page;
66
}
67
68
69
70
}
12、编写Spring的依赖注入applicationContext_bean.xml配置文件
01
<?
xml
version
=
"1.0"
encoding
=
"UTF-8"
?>
02
<
beans
xmlns
=
"http://www.springframework.org/schema/beans"
03
xmlns:xsi
=
"http://www.w3.org/2001/XMLSchema-instance"
xmlns:context
=
"http://www.springframework.org/schema/context"
04
xmlns:aop
=
"http://www.springframework.org/schema/aop"
xmlns:tx
=
"http://www.springframework.org/schema/tx"
05
xsi:schemaLocation="http://www.springframework.org/schema/beans
06
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
07
http://www.springframework.org/schema/context
08
http://www.springframework.org/schema/context/spring-context-2.5.xsd
09
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
10
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">
11
12
<!-- 业务层Service -->
13
<
bean
id
=
"student_service"
class
=
"com.serviceImpl.StudentServiceImpl"
>
14
<
property
name
=
"sessionFactory"
>
15
<
ref
bean
=
"sessionFactory"
></
ref
>
16
</
property
>
17
</
bean
>
18
19
<!-- 控制层Action -->
20
<
bean
id
=
"student_action"
class
=
"com.action.StudentAction"
>
21
<
property
name
=
"student_services"
>
22
<
ref
bean
=
"student_service"
/>
23
</
property
>
24
</
bean
>
25
26
</
beans
>
13、编写struts.xml配置文件
01
<?
xml
version
=
"1.0"
encoding
=
"UTF-8"
?>
02
<!DOCTYPE struts PUBLIC
03
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
04
"http://struts.apache.org/dtds/struts-2.0.dtd">
05
<
struts
>
06
<
package
name
=
"Easyui"
extends
=
"json-default"
>
07
<!-- 学生信息 -->
08
<
action
name
=
"getAllStudentAction"
class
=
"student_action"
method
=
"getAllStudent"
>
09
<
result
type
=
"json"
> </
result
>
10
</
action
>
11
</
package
>
12
</
struts
>
14、编写JSP----index.jsp
01
<%@ page language="java" pageEncoding="utf-8" isELIgnored="false"%>
02
<%
03
String path = request.getContextPath();
04
%>
05
<%@ taglib prefix="s" uri="/struts-tags"%>
06
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
07
<
html
>
08
<
head
>
09
<
meta
http-equiv
=
"Content-Type"
content
=
"text/html; charset=utf-8"
>
10
<
title
>数字框</
title
>
11
<!-- 引入Jquery -->
12
<
script
type
=
"text/javascript"
src="<%=path%>/js/easyui/jquery-1.8.0.min.js" charset="utf-8"></
script
>
13
<!-- 引入Jquery_easyui -->
14
<
script
type
=
"text/javascript"
src="<%=path%>/js/easyui/jquery.easyui.min.js" charset="utf-8"></
script
>
15
<!-- 引入easyUi国际化--中文 -->
16
<
script
type
=
"text/javascript"
src="<%=path%>/js/easyui/locale/easyui-lang-zh_CN.js" charset="utf-8"></
script
>
17
<!-- 引入easyUi默认的CSS格式--蓝色 -->
18
<
link
rel
=
"stylesheet"
type
=
"text/css"
href="<%=path%>/js/easyui/themes/default/easyui.css" />
19
<!-- 引入easyUi小图标 -->
20
<
link
rel
=
"stylesheet"
type
=
"text/css"
href="<%=path%>/js/easyui/themes/icon.css" />
21
22
<
script
type
=
"text/javascript"
>
23
$(function() {
24
$('#mydatagrid').datagrid({
25
title : 'datagrid实例',
26
iconCls : 'icon-ok',
27
width : 600,
28
pageSize : 5,//默认选择的分页是每页5行数据
29
pageList : [ 5, 10, 15, 20 ],//可以选择的分页集合
30
nowrap : true,//设置为true,当数据长度超出列宽时将会自动截取
31
striped : true,//设置为true将交替显示行背景。
32
collapsible : true,//显示可折叠按钮
33
toolbar:"#tb",//在添加 增添、删除、修改操作的按钮要用到这个
34
url:'getAllStudentAction.action',//url调用Action方法
35
loadMsg : '数据装载中......',
36
singleSelect:true,//为true时只能选择单行
37
fitColumns:true,//允许表格自动缩放,以适应父容器
38
//sortName : 'xh',//当数据表格初始化时以哪一列来排序
39
//sortOrder : 'desc',//定义排序顺序,可以是'asc'或者'desc'(正序或者倒序)。
40
remoteSort : false,
41
frozenColumns : [ [ {
42
field : 'ck',
43
checkbox : true
44
} ] ],
45
pagination : true,//分页
46
rownumbers : true//行数
47
});
48
49
});
50
51
</
script
>
52
53
</
head
>
54
<
body
>
55
<
h2
>
56
<
b
>easyui的DataGrid实例</
b
>
57
</
h2
>
58
59
<
table
id
=
"mydatagrid"
>
60
<
thead
>
61
<
tr
>
62
<
th
data-options
=
"field:'studentid',width:100,align:'center'"
>学生学号</
th
>
63
<
th
data-options
=
"field:'name',width:100,align:'center'"
>姓名</
th
>
64
<
th
data-options
=
"field:'gender',width:100,align:'center'"
>性别</
th
>
65
<
th
data-options
=
"field:'age',width:100,align:'center'"
>年龄</
th
>
66
</
tr
>
67
</
thead
>
68
</
table
>
69
70
</
body
>
71
</
html
>
15、启动程序,输入http://localhost:8080/easyui/index.jsp进行测试
来自:http://blog.csdn.net/lhq13400526230/article/details/9158111
- 实例:SSh结合Easyui实现Datagrid的分页显示
- 实例:SSh结合Easyui实现Datagrid的分页显示
- SSh结合Easyui实现Datagrid的分页显示
- SSh结合Easyui实现Datagrid的分页显示
- SSh结合Easyui实现Datagrid的分页显示
- SSh结合Easyui实现Datagrid的分页显示
- 实例:SSh结合Easyui实现Datagrid的分页显示
- 实例:SSh结合Easyui实现Datagrid的分页显示
- 实例:SSH结合Easyui实现Datagrid的批量删除功能
- easyUI的datagrid实现分页
- 实例:SSH结合Easyui实现Datagrid的新增功能和Validatebox的验证功能.
- 实例:SSH结合Easyui实现Datagrid的新增功能和Validatebox的验证功能.
- 使用JQuery EasyUI 中的DataGrid控件实现数据的分页(紧密结合上一篇博客)
- EasyUI的datagrid组件实现分页
- easyui datagrid 前台分页的实现
- discuz学习记录:前面的数据用EasyUI DataGrid显示,实现了服务器端分页
- jquery easyui datagrid 分页实现
- jquery easyui datagrid 分页实现
- hdu 3535 AreYouBusy
- 23种设计模式(3):抽象工厂模式
- 转发跟重定向的区别【个人理解】
- Error in an XML file: aborting build.
- 从零开始学习OpenGL ES之四 – 光效
- SSh结合Easyui实现Datagrid的分页显示
- IOS ARC与非ARC转换
- hadoop系列文章
- Socket常见异常处理
- 输出文件字符序列中两侧各有且只有三个大写字母的小写字母的C++实现源代码
- CSDN-英雄会挑战之----整数问题
- MySQL同主机不同数据库的复制命令
- Yii 分页链接定制(复合条件分页) [整理学习]
- 估计理论 是什么?