近日学习Easyui,发现非常好用,界面很美观。将学习的心得在此写下,这篇博客写SSh结合Easyui实现Datagrid的分页显示,其他的例如添加、修改、删除、批量删除等功能将在后面的博客一一写来。
首先看一下要实现的效果:当每页显示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">
|
09 |
< filter-name >struts2</ filter-name >
|
10 |
< filter-class >org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</ filter-class >
|
13 |
< filter-name >struts2</ filter-name >
|
14 |
< url-pattern >/*</ url-pattern >
|
19 |
< listener-class >org.springframework.web.context.ContextLoaderListener</ listener-class >
|
22 |
<!-- 定位applicationContext.xml的物理位置 -->
|
24 |
< param-name >contextConfigLocation</ param-name >
|
25 |
< param-value >classpath:applicationContext.xml</ param-value >
|
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">
|
14 |
< import
resource = "applicationContext_bean.xml" />
|
15 |
< import
resource = "applicationContext_db.xml" />
|
6、在com.model中创建模型类Student.java
查看源码
打印?
03 |
public
class Student {
|
04 |
String studentid; // 主键
|
09 |
public
String getStudentid() {
|
13 |
public
void setStudentid(String studentid) {
|
14 |
this .studentid = studentid;
|
17 |
public
String getName() {
|
21 |
public
void setName(String name) {
|
25 |
public
String getGender() {
|
29 |
public
void setGender(String gender) {
|
33 |
public
String getAge() {
|
37 |
public
void setAge(String age) {
|
7、根据Student.java生成对应的映射文件Student.hbm.xml
查看源码
打印?
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 --> |
06 |
< class
name = "com.model.Student"
table = "STUDENT" >
|
07 |
< id
name = "studentid"
type = "java.lang.String" >
|
08 |
< column
name = "STUDENTID"
/>
|
09 |
< generator
class = "assigned"
/>
|
11 |
< property
name = "name"
type = "java.lang.String" >
|
12 |
< column
name = "NAME"
/>
|
14 |
< property
name = "gender"
type = "java.lang.String" >
|
15 |
< column
name = "GENDER"
/>
|
17 |
< property
name = "age"
type = "java.lang.String" >
|
8、编写接口StudentService.java
查看源码
打印?
5 |
public
interface StudentService {
|
6 |
public
List getStudentList(String page,String rows) throws
Exception; //根据第几页获取,每页几行获取数据
|
7 |
public
int getStudentTotal()
throws Exception; //统计一共有多少数据
|
9、编写接口的实现类StudentServiceImpl.java
查看源码
打印?
01 |
package
com.serviceImpl;
|
03 |
import
java.util.List;
|
05 |
import
org.hibernate.SessionFactory;
|
07 |
import
com.service.StudentService;
|
09 |
public
class StudentServiceImpl implements
StudentService {
|
10 |
private
SessionFactory sessionFactory;
|
13 |
public
List getStudentList(String page, String rows) {
|
16 |
int
currentpage = Integer.parseInt((page == null
|| page == "0" ) ?
"1" : page); //第几页
|
17 |
int
pagesize = Integer.parseInt((rows == null
|| rows == "0" ) ?
"10" : rows); //每页多少行
|
19 |
List list =
this .sessionFactory.getCurrentSession().createQuery( "from Student" )
|
20 |
.setFirstResult((currentpage -
1 ) * pagesize).setMaxResults(pagesize).list();
|
26 |
public
int getStudentTotal()
throws Exception {
|
27 |
return
this .sessionFactory.getCurrentSession().find( "from Student" ).size();
|
30 |
public
SessionFactory getSessionFactory() {
|
31 |
return
sessionFactory;
|
34 |
public
void setSessionFactory(SessionFactory sessionFactory) {
|
35 |
this .sessionFactory = sessionFactory;
|
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">
|
014 |
< bean
id = "dataSource"
class = "com.mchange.v2.c3p0.ComboPooledDataSource"
|
015 |
destroy-method = "close" >
|
017 |
< property
name = "driverClass" >
|
018 |
< value >oracle.jdbc.driver.OracleDriver</ value >
|
021 |
< property
name = "jdbcUrl" >
|
022 |
< value >jdbc:oracle:thin:@localhost:1521:orcl</ value >
|
025 |
< property
name = "user" >
|
029 |
< property
name = "password" >
|
032 |
< property
name = "minPoolSize" >
|
035 |
< property
name = "maxPoolSize" >
|
038 |
< property
name = "maxIdleTime" >
|
041 |
< property
name = "acquireIncrement" >
|
044 |
< property
name = "maxStatements" >
|
047 |
< property
name = "initialPoolSize" >
|
050 |
< property
name = "idleConnectionTestPeriod" >
|
053 |
< property
name = "acquireRetryAttempts" >
|
056 |
< property
name = "breakAfterAcquireFailure" >
|
059 |
< property
name = "testConnectionOnCheckout" >
|
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"
/>
|
072 |
<!-- 定义Hibernate的SessionFactory属性 -->
|
073 |
< property
name = "hibernateProperties" >
|
075 |
< prop
key = "hibernate.dialect" >
|
076 |
org.hibernate.dialect.Oracle10gDialect
|
082 |
< property
name = "mappingResources" >
|
084 |
< value >com/model/Student.hbm.xml</ value >
|
090 |
< bean
id = "transactionManager"
|
091 |
class = "org.springframework.orm.hibernate3.HibernateTransactionManager" >
|
092 |
< property
name = "sessionFactory"
ref = "sessionFactory"
/>
|
095 |
< tx:advice
id = "txAdvice"
transaction-manager = "transactionManager" >
|
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"
/> <!-- 其他方法为只读方法 -->
|
105 |
< aop:pointcut
id = "interceptorPointCuts"
expression = "execution(* com.serviceImpl..*.*(..))"
/> <!-- 对应实现类接口的包的位置 -->
|
106 |
< aop:advisor
advice-ref = "txAdvice"
pointcut-ref = "interceptorPointCuts"
/>
|
11、在控制层编写StudentAction.java类型
查看源码
打印?
03 |
import
java.util.List;
|
05 |
import
javax.servlet.http.HttpServletRequest;
|
06 |
import
javax.servlet.http.HttpServletResponse;
|
08 |
import
net.sf.json.JSONObject;
|
10 |
import
org.apache.log4j.Logger;
|
11 |
import
org.apache.struts2.ServletActionContext;
|
13 |
import
com.service.StudentService;
|
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依赖注入
|
23 |
public
String getAllStudent() throws
Exception {
|
24 |
log.info( "查询出所有学生信息" );
|
26 |
List list = student_services.getStudentList(page, rows);
|
27 |
this .toBeJson(list,student_services.getStudentTotal());
|
33 |
public
void toBeJson(List list, int
total) throws
Exception{
|
34 |
HttpServletResponse response = ServletActionContext.getResponse();
|
35 |
HttpServletRequest request = ServletActionContext.getRequest();
|
37 |
JSONObject jobj =
new JSONObject(); //new一个JSON
|
38 |
jobj.accumulate( "total" ,total ); //total代表一共有多少数据
|
39 |
jobj.accumulate( "rows" , list); //row是代表显示的页的数据
|
41 |
response.setCharacterEncoding( "utf-8" ); //指定为utf-8
|
42 |
response.getWriter().write(jobj.toString()); //转化为JSOn格式
|
44 |
log.info(jobj.toString());
|
48 |
public
StudentService getStudent_services() {
|
49 |
return
student_services;
|
52 |
public
void setStudent_services(StudentService student_services) {
|
53 |
this .student_services = student_services;
|
56 |
public
void setJsonObj(JSONObject jsonObj) {
|
57 |
this .jsonObj = jsonObj;
|
60 |
public
void setRows(String rows) {
|
64 |
public
void setPage(String page) {
|
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">
|
13 |
< bean
id = "student_service"
class = "com.serviceImpl.StudentServiceImpl" >
|
14 |
< property
name = "sessionFactory" >
|
15 |
< ref
bean = "sessionFactory" ></ ref >
|
20 |
< bean
id = "student_action"
class = "com.action.StudentAction" >
|
21 |
< property
name = "student_services" >
|
22 |
< ref
bean = "student_service"
/>
|
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"> |
06 |
< package
name = "Easyui"
extends = "json-default" >
|
08 |
< action
name = "getAllStudentAction"
class = "student_action"
method = "getAllStudent" >
|
09 |
< result
type = "json" > </ result >
|
14、编写JSP----index.jsp
查看源码
打印?
01 |
<%@ page language="java" pageEncoding="utf-8" isELIgnored="false"%> |
03 |
String path = request.getContextPath();
|
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"> |
09 |
< meta
http-equiv = "Content-Type"
content = "text/html; charset=utf-8" >
|
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" />
|
20 |
< link
rel = "stylesheet"
type = "text/css"
href="<%=path%>/js/easyui/themes/icon.css" />
|
22 |
< script
type = "text/javascript" >
|
24 |
$('#mydatagrid').datagrid({
|
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'(正序或者倒序)。
|
45 |
pagination : true,//分页
|
56 |
< b >easyui的DataGrid实例</ b >
|
59 |
< table
id = "mydatagrid" >
|
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 >
|
15、启动程序,输入http://localhost:8080/easyui/index.jsp进行测试
来自:http://blog.csdn.net/lhq13400526230/article/details/9158111
时间: 2024-10-03 02:38:09