Struts2、Spring和Hibernate应用实例

上传人:20****03 文档编号:164407582 上传时间:2021-01-28 格式:DOC 页数:41 大小:140KB
返回 下载 相关 举报
Struts2、Spring和Hibernate应用实例_第1页
第1页 / 共41页
Struts2、Spring和Hibernate应用实例_第2页
第2页 / 共41页
Struts2、Spring和Hibernate应用实例_第3页
第3页 / 共41页
Struts2、Spring和Hibernate应用实例_第4页
第4页 / 共41页
Struts2、Spring和Hibernate应用实例_第5页
第5页 / 共41页
点击查看更多>>
资源描述

《Struts2、Spring和Hibernate应用实例》由会员分享,可在线阅读,更多相关《Struts2、Spring和Hibernate应用实例(41页珍藏版)》请在金锄头文库上搜索。

1、Struts2、Spring和Hibernate应用实例Struts作为MVC 2的Web框架,自推出以来不断受到开发者的追捧,得到广泛的应用。作为最成功的Web框架,Struts自然拥有众多的优点:MVC 2模型的使用、功能齐全的标志库(Tag Library)、开放源代码。而Spring的出现,在某些方面极大的方面了Struts的开发。同时,Hibernate作为对象持久化的框架,能显示的提高软件开发的效率与生产力。这三种流行框架的整合应用,可以发挥它们各自的优势,使软件开发更加的快速与便捷。struts2发布已经很久了,但关于如何使用它的教程及实例并不多。特别是与Spring及Hiber

2、nate等流行框架的集成,并不多见。现在就将笔者使用Myeclipse工具应用struts2 + spring2 + hibernate3 实现CRUD操作的步骤一一纪录下来,为初学者少走弯路略尽绵薄之力!在本文中,笔者将Struts2.0.6、Spring2.0.6和Hibernate3.1进行整合,希望通过这样的整合示例,让读者了解这些框架各自的特点,以便于在自己的项目中,根据实际情况,尽快的过渡到Struts2的时代。本文的内容基于Struts2.0.6。 一、准备工作 spring2与1.x区别不大,可以平滑的过度,笔者也是把spring1.28换成了spring2.0.6,算是升级到

3、spring 2.0了。struts2基本就是webwork2.2,与以前的struts1.x可以说没任何关系了。因为是第一次用struts2,也是第一次用webwork,所以有很多不完善,不规范的地方,还望大家来拍砖。开发环境:MyEclipse5.0+Eclipse3.2+JDK5.0+Tomcat5.5+struts2+Spring2.0.6+Hibernate3.1。本示例通过对一个图书进行管理的系统,提供基本的增加、删除、修改、查询等功能。lib包需要以下右图所示的这些包。其中Struts2.0.6的下载地址为:http:/people.apache.org/builds/strut

4、s/2.0.6Hibernate3.1的下载地址为:http:/www.hibernate.orgspring2.0.6的下载地址为:http:/www.springframework.org使用的数据库为mysql 5.0,使用的JDBC驱动JAR包为:mysql-connection-java-5.0.4-bin创建数据表的sql语句为:create database game CREATE TABLE books (book_id int(11) NOT NULL default 0,book_name varchar(200) character set gb2312 default

5、NULL,book_author varchar(100) character set gb2312 default NULL,book_publish varchar(100) character set gb2312 default NULL,book_date date default NULL,book_isbn varchar(20) default NULL,book_page int(11) default NULL,book_price decimal(10,2) default NULL,book_content varchar(100) character set gb23

6、12 default NULL,PRIMARY KEY (book_id) ENGINE=InnoDB DEFAULT CHARSET=gbk ROW_FORMAT=COMPRESSED;二、建立公共类 1、AbstractAction类Struts2和Struts1.x的差别,最明显的就是Struts2是一个pull-MVC架构。Struts1.x 必须继承org.apache.struts.action.Action或者其子类,表单数据封装在FormBean中。Struts 2无须继承任何类型或实现任何接口,表单数据包含在Action中,通过Getter和Setter获取。虽然,在理论上S

7、truts2的Action无须实现任何接口或者是继承任何的类,但是,在实际编程过程中,为了更加方便的实现Action,大多数情况下都会继承com.opensymphony.xwork2.ActionSupport类,并且重载(Override)此类里的String execute()方法。因此先建立抽象类,以供其它Action类使用。package mons;import com.opensymphony.xwork2.ActionSupport;public class AbstractAction extends ActionSupport mons.AbstractAction.java

8、参考JavaDoc,可知ActionSupport类实现了接口:com.opensymphony.xwork2.Actioncom.opensymphony.xwork2.LoaleProvidercom.opensymphony.xwork2.TextProvidercom.opensymphony.xwork2.Validateablecom.opensymphony.xwork2.ValidationAwarecom.uwyn.rife.continuations.ContinuableObjectjava.io.Searializablejava.lang.Cloneable2、Pag

9、er分页类为了增加程序的分页功能,特意建立共用的分页类。package mons;import java.math.*;public class Pager private int totalRows; /总行数 private int pageSize = 5; /每页显示的行数 private int currentPage; /当前页号 private int totalPages; /总页数 private int startRow; /当前页在数据库中的起始行public Pager() public Pager(int _totalRows) totalRows = _totalR

10、ows;totalPages=totalRows/pageSize;int mod=totalRows%pageSize;if(mod0)totalPages+;currentPage = 1;startRow = 0;public int getStartRow() return startRow;public int getTotalPages() return totalPages;public int getCurrentPage() return currentPage;public int getPageSize() return pageSize;public void setT

11、otalRows(int totalRows) this.totalRows = totalRows;public void setStartRow(int startRow) this.startRow = startRow;public void setTotalPages(int totalPages) this.totalPages = totalPages;public void setCurrentPage(int currentPage) this.currentPage = currentPage;public void setPageSize(int pageSize) th

12、is.pageSize = pageSize;public int getTotalRows() return totalRows;public void first() currentPage = 1;startRow = 0;public void previous() if (currentPage = 1) return;currentPage-;startRow = (currentPage - 1) * pageSize;public void next() if (currentPage totalPages) last();mons.Pager.java同时,采用PagerSe

13、rvice类来发布成为分页类服务PagerService,代码如下:package mons;public class PagerService public Pager getPager(String currentPage,String pagerMethod,int totalRows) / 定义pager对象,用于传到页面 Pager pager = new Pager(totalRows);/ 如果当前页号为空,表示为首次查询该页/ 如果不为空,则刷新pager对象,输入当前页号等信息 if (currentPage != null) pager.refresh(Integer.parseInt(currentPage);/ 获取当前执行的方法,首页,前一页,后一页,尾页。 if (pagerMethod != null) if (pagerMethod.equals(first) pager.first(); else if (pagerMethod.equals(previous) pager.previous(); else if (pagerMethod.equals(next) pager.next(); else if (pagerMethod.equals(last) pager.last();return pager;

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 教学/培训

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号