毕业设计来临,我的课题是超市管理系统实现,由于不想花费过多的时间在美工上,所以自学了一些ext方面的知识,其中分页的实现是非常常用而又重要的.借丰富的网络资源完成了其分页的实现。
也许分页的实现对像我这样的初学者来说比较有难度,其实如果你认真去研究他的原理,感觉并没想像中的那么难。刚开始我想用DWR框架来实现客户端到服务器的数据交换,个人觉得其实现过程过于繁琐,不适合初学者学习。如果有兴趣的可以在网上找相应资源。下面我借助struts2.1和hibernate3.0来实现ext的表格分页。
项目是以列出数据库中学生信息进行分页为实例。
以下数据库(oracle11g)的建表语句:
create table student(
id number, --主键
code varchar2(50), --学号
name varchar2(50),
sex varchar2(10),
age number(10),
political varchar2(50),--政治面貌
origin varchar2(50), --籍贯
professional varchar(50)
)
alter table student
add constraint pk_student primary key(id);
create sequence seq_sId
increment by 1
start with 1
maxvalue 999999999;
insert into student values(seq_sid.nextval,'200841903205','刘晓春','男','22','中共党员','湖南长沙','长沙');
insert into student values(seq_sid.nextval,'200841903206','景','女','20','共青团员','河南','商丘');
insert into student values(seq_sid.nextval,'200841903207','婧','女','22','中共党员','湖南长沙','邵阳');
前台代码:
Index.jsp页面,ext导入的基础包
<%@page import="java.math.BigDecimal"%>
<%@page import="com.student.service.StudentSerivce"%>
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://"
+ request.getServerName() + ":" + request.getServerPort()
+ path + "/";
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>index</title>
<meta name="generator" content="Studio 3 http://aptana.com/">
<meta name="author" content="moxu">
<link type="text/css" rel="stylesheet"
href="ext/resources/css/ext-all.css"></link>
<script type="text/javascript" src="ext/adapter/ext/ext-base.js"></script>
<script type="text/javascript" src="ext/ext-all.js"></script>
<!-- 这是引入一个自定义的js页面,关键实现代码所在 -->
<script type="text/javascript" src="index.js"></script>
<!-- Date: 2011-11-19 -->
</head>
<body>
<%
StudentSerivce ss = new StudentSerivce();
request.setAttribute("student" ,ss.findById(new BigDecimal(1)));
%>
<script type="text/javascript">
function get(){
var a = '${student.name}';
alert(a);
}
</script>
<div id="head" style="font-weight: bold; font-size: 200%">
学生管理系统
</div>
<div id="foot" style="text-align: center;">
</div>
</body>
</html>
下面是index.js代码,实现分页非常重要的核心部分,注意此页面必须导入index.jsp
/**
* @author moxu
*/
Ext.onReady(function() {
var recordType = Ext.data.Record.create([ //表格的记录集格式
{name: "id",mapping:"id", type: "int"},
{name: "code", mapping:"code",type: "string"},
{name: "name", mapping:"name", type: "string"},
{name: "sex", mapping:"sex", type: "string"},
{name: "age", mapping:"age", type: "string"},
{name: "political", mapping:"political", type: "string"},
{name: "origin", mapping:"origin", type: "string"},
{name: "professional", mapping:"professional", type: "string"}
]);
var store1 = new Ext.data.Store({
//采用HttpProxy代理
proxy : new Ext.data.HttpProxy({
url:'student.action' //action的名字,通过action来获取数据
}),
reader : new Ext.data.JsonReader({ //对数据进行解析,数据必须为json格式
totalProperty: 'tatalProperty', //总共有多少条记录
root : 'root' //数据
},recordType),
remoteSort: true
});
var columns = new Ext.grid.ColumnModel([
{header:'学号',dataIndex:'code'},
{header:'姓名',dataIndex:'name'},
{header:'性别',dataIndex:'sex'},
{header:'年龄',dataIndex:'age'},
{header:'政治面貌',dataIndex:'political'},
{header:'籍贯',dataIndex:'origin'},
{header:'所属系',dataIndex:'professional'}
]);
var grid = new Ext.grid.GridPanel({
title:'学生信息列表',
region:"center",
cm:columns,
store:store1,
bbar:new Ext.PagingToolbar({
pageSize:7,
store:store1,
displayInfo:true,
displayMsg:'显示第{0}条到{1}条记录,一共{2}条'
})
});
store1.load({ //注意带后面的参数
params:{
start:0,
limit:6
}
});
var vp = new Ext.Viewport({
layout : 'border',
items:[
{
region:'north',
contentEl:'head'
},
grid,
{
region:'south',
contentEl:'foot'
},
{
region:'east',
contentEl:'button'
}]
});
});
Serivce层StudentSerivce.java关键方法:(注意json字符串必须是如下格式{tatalProperty:100,root:[{"id":1,"sex":"男","political":"中共党员","age":22,"name":"刘晓春","origin":"湖南长沙","code":"200841903205","professional":"长沙"},{"id":2,"sex":"女","political":"共青团员","age":20,"name":"景","origin":"河南商丘","code":"200841903206","professional":"商丘"},{"id":3,"sex":"女","political":"中共党员","age":22,"name":"尹","origin":"湖南长沙","code":"200841903207","professional":"唐市"}]}
)
public String getList(int start,int limit){
Session session = HibernateSessionFactory.getSession();
Transaction tran = session.beginTransaction();
Query q = session.createQuery("from Student");
q.setFirstResult(start);
q.setMaxResults(limit);
ArrayList<Student> al = (ArrayList<Student>) q.list();
tran.commit();
session.close();
return "{tatalProperty:100,root:"+JSONArray.fromObject(al)+"}";
}
Action层关键代码实现:
package com.student.action;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionSupport;
import com.student.service.StudentSerivce;
public class StudentAction extends ActionSupport {
/**
*
*/
private static final long serialVersionUID = 1L;
private HttpServletResponse response;
private HttpServletRequest request;
public int getStart() {
return start;
}
public void setStart(int start) {
this.start = start;
}
public int getLimit() {
return limit;
}
public void setLimit(int limit) {
this.limit = limit;
}
private int start;
private int limit;
@Override
public String execute() throws Exception {
// TODO Auto-generated method stub
response = ServletActionContext.getResponse();
response.setContentType("application/xml;charset=UTF-8");
System.out.println("start"+start+"limit"+limit);
response.getWriter().print(new StudentSerivce().getList(start,limit));
return null;
}
分享到:
相关推荐
"ext3+struts2+hibernate+spring的CRUD+分页"是一个典型的Java Web开发组合,用于实现全面的数据管理功能。这个组合充分利用了各个框架的优势,提供了一个强大的后端数据处理和前端展示的解决方案。 首先,EXT3是一...
《图书管理系统:struts+hibernate+spring+ext整合实践》 图书管理系统是一个常见的企业级应用,它涉及到了Web开发中的多个核心技术,包括Struts、Hibernate、Spring以及EXT。这个压缩包文件“图书管理系统(struts+...
《图书管理系统:基于Struts+Hibernate+Spring+Ext的整合应用》 图书管理系统是一个常见的企业级应用程序,旨在高效地管理图书馆的各类资源,包括图书、读者、借阅记录等。本系统采用Java技术栈,结合Struts、...
总结起来,"图书管理系统(struts+hibernate+spring+ext)130221.zip"是一个利用现代Java Web技术实现的图书管理解决方案,其架构设计和功能实现展示了SSH2与EXT的强大能力,为图书馆信息化建设提供了可靠的工具。
ExtJs4.2+Mysql+Struts2+Hibernate3实现分页查询 1.libs目录缺少hibernate核心jar包 2.libs目录缺少struts jar 3.WebRoot目录缺少ExtJs4.2核心类库 以上信息我都在项目里面注明了,因为这些内容的文件太大了,CSDN不...
综上所述,这个"图书管理系统(struts+hibernate+spring+ext)"项目为开发者提供了一个深入理解SSH+EXT技术栈的平台,同时也为初学者提供了一个实战案例,有助于提升其在Web开发领域的技能。通过学习和实践这个系统,...
在图书管理系统中,EXT提供了丰富的组件库,如表格、表单、分页、树形结构等,用于展示和交互数据。EXT的组件化开发方式使得界面设计更加灵活,用户体验更佳。 这些技术的集成使得图书管理系统具有良好的分层结构,...
**项目名称:** 图书管理系统(Struts + Hibernate + Spring + Ext) **项目简介:** 本项目是一个基于Java Web技术的图书管理系统,采用了Struts、Hibernate、Spring和Ext等主流框架进行开发。系统主要包括图书...
【EXT+Spring+Hibernate+WebWork项目】是一个综合性的企业级应用开发实例,它整合了四个关键的技术框架:EXT、Spring、Hibernate和WebWork。这些技术的组合为构建高效、可扩展且用户友好的Web应用程序提供了强大的...
标题中的"一个ext+spring+hibernate+struts2做的系统---源代码"表明这是一个基于Java技术栈的Web应用程序,使用了EXTJS(EXT)作为前端框架,Spring作为核心控制层,Hibernate作为持久化框架,以及Struts2作为MVC...
在“chapter08”可能包含了EXT JS实现的图书管理界面,比如图书列表展示、分页、搜索和排序等功能。 Struts是Apache基金会的一个开源项目,它基于MVC(Model-View-Controller)架构模式,主要处理Web应用程序的控制...
在Struts2和Hibernate处理后台数据后,Ext Grid作为前端展现层,将数据以表格形式展示给用户,并支持用户进行编辑、新增和删除操作。 这个示例项目"**s2s2h31demo**"很可能包含以下组成部分: 1. **Action类**:...
所以没有上传导入的jar,其实就是默认的struts2和hibernate以及spring的包.该项目使用的jar包为以下. spring-beans.jar xwork-2.0.4.jar spring-context.jar ognl-2.6.11.jar spring-web.jar ...
在本文中,我们将探讨如何利用Ext、Gwt和Struts2.0这三种技术进行集成开发,特别是通过Google Plugin创建一个与Struts2.0框架交互的实例。 首先,我们来了解一下这三种技术的核心概念: 1. **Ext**:这是一个基于...
标题中的"ext+ssh"指的是两种技术的结合:EXT(ExtJS)和SSH(Spring、Struts、Hibernate)。EXT是一个JavaScript库,用于构建富互联网应用程序(RIA),而SSH是Java Web开发中的一个流行框架组合,包括Spring框架...
这个简单的例子展示了EXTJS如何利用Struts2来获取和展示分页数据,帮助开发者快速理解并应用到实际项目中。对于初学者来说,这是一个很好的起点,可以进一步探索EXTJS和Struts2的更多高级特性,如过滤、排序和自定义...
本项目“SH+ext的小型邮件系统”利用Struts1、Hibernate框架,并结合EXT前端组件库,实现了一个功能完备且具有分页功能的邮件应用。接下来,我们将深入探讨其中的关键技术和实现细节。 首先,Struts1是Java Web应用...
标题中的“ExtJs一张表分页与增删改查”是指使用Ext Js前端框架来实现一个数据表格的分页显示,以及对表格数据进行添加、删除、修改和查询操作的基础功能。这种功能在Web应用程序中非常常见,尤其在管理信息系统中,...