SSH三大框架开发案例
ssh详解

SSH框架整合步骤详解SSH框架 2009-04-09 10:47:00 阅读611 评论0 字号:大中小订阅更系统地学习Struts1.x/Struts2.x+Hibernate+Spring,请学习该开源项目Appfuse终于,终于将SSH整合成功了,弄了几个小时,可以休息了(有的朋友弄了半个月,甚至重装了系统也没弄好,哎,庆幸啊)。
碰到问题千万不要放弃,要相信没有解决不了的问题!项目结构图:jsp部分为:index.jsp;success.jsp;fail.jspUserDAO.java,User.hbm.xml自动生成,HibernateSessionFactory 是多余的。
相关的配置文件、类文件详细信息,请参看Struts+Spring+Hibernate/SSH整合开发详细二以前是整过这三个框架的,可是工作期间都不曾用过,不知不觉之中,学的东西全忘了。
这次又要开始找工作了,看着招聘启事上都写着:要求熟练掌握Struts,Hibernate或Spring框架……,没得办法,重新学呗。
Spring in Action中文版下载地址(ftp协议)ftp://222.214.218.61/book5/20080228/cf8b35cc-5bcd-497 3-b6b7-37ae3ec78391.rar如果无法下载,可以在里重新搜索首先开始搭建项目环境,步骤如下:使用平台:MyEclipse 6.0框架版本:Struts 1.2 Hibernate 3.0 Spring 2.01>添加过程:<1> 新建项目。
Package Explorer视图下,右键单击 New -> Web Project;<2> 添加Struts框架。
菜单栏MyEclipse -> Capabilities,或者右键单击新建的项目名,选择快捷菜单中的"MyEclipse"下的二级菜单;设置相关的包名后,请写一个Struts的小例子,用来测试Struts是否可用;<3> 添加Spring。
SSH框架说明文档

一、SSH整体介绍1. 简介本Demo程序采用的是SSH(Struts+Spring+Hibernate)三层架构。
(1)Struts用于表现层,负责页面数据提取,页面动作响应。
(2)Spring是一种轻量级的框架模型,主要负责业务逻辑层的对象创建,表现层的Action 的创建,以及持久层的DAO的创建。
(3)Hibernate负责把内存中的数据对象保存到数据库中。
2. 框架集成说明在SSH三层架构中,主要用Struts来实现对页面的响应及页面跳转。
当用户向服务器发送某一个请求,这个请求会被服务器(Tomcat)接收到,服务器会根据请求的内容,将这个请求发送给相应的Servlet实例进行处理。
Servlet会根据其内容,去生成相应的Action实例。
本程序中,Struts将Action的创建工作交给了Spring的代理类来完成,创建这个实例后,将这个实例注入,由Struts调用Action中的相应方法。
Action中可以配置一个或多个Service对象,Action调用Service中的方法进行业务处理。
Service中通常会有一个或多个DAO的对象,DAO 继承了Hibernate的接口,用来处理数据库的操作。
而Action,Service,DAO的创建与注入,都是由Spring的Bean工厂来实现的。
(1)Struts与Spring的集成✧在Web.xml中配置Struts的配置文件✧在Web.xml中配置Spring的配置文件,Bean工厂及过滤器✧在Struts配置文件中集成Spring的代理类✧在Spring配置文件中配置Action(2)Spring与Hibernate的集成✧在Web.xml中配置Hibernate延迟过滤器配置✧在Web.xml中配置Spring的配置文件,Bean工厂及过滤器✧在Spring配置文件中配置DAO✧在Hibernate配置文件中配置数据库信息✧在DAO的实现类中继承HibernateDaoSupport类3. 程序的包结构(1)表现层的类包,分别用来存放表现层的Form与Action。
搭建SSH框架(Struts1,Spring2.5,Hibernate3)

搭建SSH框架:Struts1.* + Spring2.5 + Hibernate3.0 一,项目结构:图(1)Jsp页面省略,主要是一些添删改查的页面;二,开始搭建项目环境,步骤如下:使用平台:MyEclipse6.0/6.5框架版本:Struts1.* + Spring2.5 + Hibernate3.0;1,添加过程:1>,新建项目: 打开MyEclipse,在Package Explorer视图下,右键单击New-> Web Project;注意:在新建项目时,JDK的版本最好要选择Java EE 5.0;因为版本过低,可能有些JSP方面的功能不支持;新建玩项目之后,把该导的包导入到下面,下图为SS H 框架所需要的Jar包,注意,该项目用的是ORACLE数据库;其中,activation与mail这两个包为Java发邮件的包;classes12为Oracle数据库的驱动包,如果不是Oracle数据库,可更换该Jar包;dwe为Ajax dwr 框架中的包;2>,接着就开始用MyEclipse辅助开发Struts,Spring,Hibernate了;3>,首先MyEclipse辅助开发Struts,方法:右键单击你所建的项目,出现一级菜单,选择Myeclipse,选择Myeclipse之后会出现二级菜单,接着选择Add Struts Capabilities;;接着具体操作如下面图示:点击Finish按钮完成;完成之后,可将包删除;在上图中,如果那个勾没有去掉的话,就会自动生产如下标签:当然,如果你觉得标签对你没什么用的话,可以删除;如果该勾去掉的话,就只生成标签,这是Struts的核心标签;4>,MyEclipse辅助开发Spring,方法跟上面的一样,选择Add Spring apabilities;;接着具体操作如下面图示:然后点击Next,具体操作如下图:接着点击 Finish按钮,完成此项操作;5>,,最后MyEclipse辅助开发Hibernate,在执行和上面类似方法之前,Hibernate 需要先做另外一件事情,那就是和数据建立连接,具体操作如下图:点击上图位置的或者右边的>> ,然后再选择MyEclipse Database Explorer切换到如下图页面:,然后右键单击,新建一个Database Driver;如下图:下面这个截图是该项目的数据库链接图:如图所示,测试数据库链接成功;然后可直接点击Finish完成;接着切换到窗口,按照上面第三小步的方法,选择Add Hibernate apabilities;;接着具体操作如下面图示:点击下一步:点击下一步:点击下一步:点击下一步:点击 Finish 完成;6>,最后一步,就是运用Hibernate的映射机制,把数据库的表与JAVA的对形成一个关系映射;在此之前,首先应该在项目SRC的目录下面新建一个包,如该项目所示,用来存放映射生成的POJO对象以及映射文件;如下图:有一点说一下,你生成的*.hbm.xml文件可能不止一个,对,你可以把它们整合到一个文件中;然后新建按第五小步的方法,把窗口切换到MyEclipse Database Explorer界面,然后打开右键刚才所建立的链接,选择属于你自己的用户;然后选择Tble;右键选择如上图的属性:接下来的操作如下图:点击 Next,进入下一步:点击 Next,进入下一步:至此,项目环境己经搭建完成;三,项目搭建完成,SSH各个部分配置文件的说明,以及它们之间存在的关系:1,首先是Struts的核心配置文件,即struts-config.xml:<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN""/dtds/struts-config_1_2.dtd"><struts-config><data-sources /><form-beans><!—建立Form表单,在此处进行登记 -→<form-bean name="userForm"type="erForm" /> </form-beans><global-exceptions /><global-forwards /><!—各个Action对应与之相对应的表单 -→<action-mappings><!-- 用户管理 --><action parameter="opers" attribute="userForm" name="userForm"path="/doUser" scope="request"><forward name="login_ok" path="/welcome.jsp"></forward><forward name="login_no" path="/index.jsp"></forward> </action></action-mappings><controllerprocessorClass="org.springframework.web.struts.DelegatingRequestProc essor"></controller><message-resourcesparameter="ermanagerview.struts.ApplicationResources"> </message-resources><!—Spring辅助Struts管理Struts-→<plug-inclassName="org.springframework.web.struts.ContextLoaderPlugIn"><set-property property="contextConfigLocation"value="/WEB-INF/action-servlet.xml" /></plug-in></struts-config>2,其次就是Springd的applicationContext.xml文件和action-servlet.xml文件:applicationContext.xml文件:<?xml version="1.0" encoding="UTF-8"?><beansxmlns="/schema/beans"xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/schema/beans /schema/beans/spring-beans-2.5.xsd"><!-- Session 工厂 --><bean id="sessionFactory"class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="configLocation"value="classpath:hibernate.cfg.xml"><!-- 可以不要配置文件(hibernate.cfg.xml),直接写在这个Spring的配置文件中 --></property></bean><!-- 模板 --><bean id="hibernateTemplate"class="org.springframework.orm.hibernate3.HibernateTemplate"><property name="sessionFactory" ref="sessionFactory" /> </bean><!-- 事务器 --><bean id="transactionManager"class="org.springframework.orm.hibernate3.HibernateTransactionManage r"><property name="sessionFactory" ref="sessionFactory" /> </bean><!-- 对外代理 --><!-- 1,用户管理 --><bean id="userDaoImp"class="erDaoImp"><property name="hibernateTemplate" ref="hibernateTemplate" /> </bean><bean id="userServiceTarget"class="erServiceImp"> <property name="userdao"><ref local="userDaoImp" /></property></bean><bean id="userService"class="org.springframework.transaction.interceptor.TransactionProxyF actoryBean"><property name="transactionManager"><ref local="transactionManager" /></property><property name="target"><ref local="userServiceTarget" /></property><property name="transactionAttributes"><props><prop key="*">PROPAGATION_REQUIRED</prop></props></property></bean></beans>action-servlet.xml文件:<!—Spring辅助Struts管理Struts-<?xml version="1.0" encoding="UTF-8"?><beans xmlns="/schema/beans"xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/schema/beans /schema/beans/spring-beans-2.0.xsd"> <bean name="/doUser"class="erAction"scope="prototype"></bean></beans>3,最后就是Hibernate的hibernate.cfg..xml文件:<?xml version='1.0' encoding='UTF-8'?><!DOCTYPE hibernate-configuration PUBLIC"-//Hibernate/Hibernate Configuration DTD 3.0//EN""/hibernate-configuration-3.0.dtd"><!-- Generated by MyEclipse Hibernate Tools. --><hibernate-configuration><session-factory><property name="ername">wangxiaodong</property><property name="connection.url">jdbc:oracle:thin:@192.168.0.2:1521:ALIZEEDB</property><property name="dialect">org.hibernate.dialect.Oracle9Dialect</property><propertyname="myeclipse.connection.profile">Test</property><property name="connection.password">donny</property><property name="connection.driver_class">oracle.jdbc.driver.OracleDriver</property><mappingresource="com/ygkq/usermanager/model/entity/User.hbm.xml" /></session-factory></hibernate-configuration>该文件基本上不用动,都是自动生成的代码;当然,你也可以根据自己的需要添加代码,例如,你想在执行HQL语句的时候让它显示SQL语句,可将<property name="hibernate.show_sql">true</property>插入代码中;另外在图(1)中还有两个配置文件没有提到,那就是log4j.properties 与mytag.tld;其中log4j.properties是配置日志信息的;而mytag.tld主一个自定义标签;四,SSH框架搭建完成:SSH框架基本搭建完成,如果有不对或者不妥之处,请随时指教!~E-mail:jerry8059@。
SSH技术在仓库管理网站设计中的研究

响主程序物 理和逻辑上的运行 。本文设计 的仓库 管理 网站 主 要完成 系统管理模块、 人员管理模块 、 物资管理模块 、 合 同管 理模块及仓库 管理模块的设计 。
实际上又封 装了 J D BC , 所 以, 最后通过对象一 关系映射, 可 以 实 现通 过对对象的操作达到对数据库 的操 作。整个对象一映 射操作就是如此 , 通过配置文件的配置, H i b e na r t e 框架读取配 置信 息,使得对实体类对象的操作转化为对 关系数据库表 的 操作 ,满足面 向对象 的设计思想 。系统中对 其他数据库表 的 操 作步骤基本相 同。本仓库管理网站货物 ( Go o d s ) 对应 的配 置 文件 为 Go o d s . h b m. x ml 。
摘要 : 研 究了 S t r u t s 、 H i b e na r t e 、 S p r i n g三 大框架技术在仓库 管理 网站设计 中的作 用。S p r i n g是一个开源框架 , 是为 了解 决企业应 用程序 开发 复杂性 而创 建的。S t r u t s 是 系统 的核 心控 制器 , S t r u t s 是 一个标 准的 MVC框 架。Hi b e ma t e通过持 久层 的框 架将数据 库存储从服 务层 中分 离出来,可以 实现关 系型数 据库和对象之 间的映射 。设计的仓库管理 网站 由基
本功能 、 组成 架构 、 查询统计 、 功能模块 、 维护设置等组成 。仓 库管理 网站在运行 阶段 , 性能稳定 , 数据 准确性 高, 提 高了 工作效率 , 同时也 实现 了仓库 管理 自动化 和科 学化。
关键词 : 仓库管理 ; S S H; 框 架技 术 中图分类号 : T P 3 1 5 文献标 识码 : A
基于SSH框架的高校科研管理系统的设计与实现

基于SSH框架的高校科研管理系统的设计与实现摘要:研究整合Struts、Spring和Hibernate框架形成一个SSH框架的方法,该框架中以Struts作为表示层、Spring作为业务逻辑层、Hibernate作为数据持久层,充分发挥三者在各层中的优势,形成一个高效的Web应用框架。
在SSH框架的基础上,设计并实现了高校科研管理系统,该系统具有科研项目、科研成果信息、科研工作量管理等功能。
关键词:科研管理;Web;MVC设计模式;SSH0 引言人才培养、科学研究和服务社会是高校的三大职能,各高校在重视人才培养的同时,也越来越重视科学研究,以达到更好地服务社会的目的。
为了使高校的科研管理工作更加科学化、规范化和高效化,高校科研处需要全面准确地掌握全校教师和各部门的科研项目及科研成果的相关情况,并在此基础上进行科学的信息化管理。
因此,建立科研管理信息化平台,充分利用Internet的优势,开发并使用科研管理信息系统是各高校的迫切需求。
基于Web技术实现B/S(浏览器/服务器)结构的应用系统,是以Internet及其相关技术为基础、发布能够集成到Internet上的与硬件和软件平台无关的应用程序,将传统C/S(客户机/服务器)结构的应用系统移植到Internet上,使每个用户在任何一个有网络的地方,不需要另外安装客户端软件,通过浏览器就可以方便使用的一种系统。
三层B/S结构的Web应用系统一般分成表示层、业务逻辑层和数据访问层,分别部署为WWW服务器(又称Web服务器)、应用服务器和数据库服务器,这样做的好处是不仅提高了系统的性能,还使得不同类型的程序员能分工合作,提高开发速度,降低开发和维护成本。
由于开发周期短,与用户平台无关,易于实现交互式应用,能对信息进行快速、高效的收集、处理和发布。
近些年来,基于Web的应用系统得到了迅速的发展。
与此同时,带来的是Web应用呈几何数量级增长,系统也变得越来越复杂。
ssh框架 实验报告

ssh框架实验报告《SSH框架实验报告》一、实验目的本实验旨在通过对SSH框架的学习和实践,掌握SSH框架的基本原理和应用技巧,提高对SSH框架的理解和运用能力。
二、实验内容1. 理解SSH框架的概念和组成结构2. 搭建SSH框架的开发环境3. 编写基本的SSH框架应用程序4. 调试和测试SSH框架应用程序5. 总结和分析实验结果三、实验步骤1. 理解SSH框架的概念和组成结构通过阅读相关文献和资料,了解SSH框架的基本概念和组成结构,包括Struts、Spring和Hibernate三大框架的作用和相互关系。
2. 搭建SSH框架的开发环境在本地计算机上安装并配置好Java开发环境、Tomcat服务器、MySQL数据库,并下载安装好Struts、Spring和Hibernate框架的相关文件和插件。
3. 编写基本的SSH框架应用程序创建一个简单的SSH框架应用程序,包括前端页面的设计和开发、后端业务逻辑的编写和数据库的操作等内容。
4. 调试和测试SSH框架应用程序对编写好的SSH框架应用程序进行调试和测试,确保程序能够正常运行并达到预期的效果。
5. 总结和分析实验结果总结本次实验的收获和体会,分析在实践中遇到的问题和解决方法,以及对SSH框架的进一步学习和应用展望。
四、实验结果通过本次实验,我对SSH框架有了更深入的理解,掌握了搭建SSH框架的基本步骤和技巧,同时也发现了一些问题和需要改进的地方。
在实践中,我对SSH 框架的应用有了更清晰的认识,对于将来的开发工作也更有信心。
五、结论SSH框架是一种非常强大和灵活的开发框架,通过本次实验的学习和实践,我对SSH框架有了更深入的理解和掌握,相信在将来的工作中能够更好地应用和发挥其优势,提高开发效率和质量。
六、参考文献1. 《SSH框架入门与实战》2. 《Spring实战》3. 《Hibernate实战》4. 《Struts2权威指南》以上就是本次实验的实验报告,希望能够对大家对SSH框架的学习和应用有所帮助。
SSH框架开发技术详解

3.2 Struts2框架概览
• 3.2.2 Struts2框架 – Struts2是Struts的新一代产品,是在Struts和WebWork的技术基础上进行了合并的 全新的Struts2框架。其全新的Struts2的体系结构与Struts1的体系结构的差别巨大。 – Struts2以WebWork为核心,采用拦截器的机制来处理用户的请求,使用IoC和AOP 最先进的设计思想,这样的设计使得业务逻辑控制器能够与Servlet API解耦合。 – Struts2支持基于Annotation的配置。
3.1 Web开发框架概述
• 3.1.4 JSP架构模式Model II – MVC的工作流程: • 客户的请求信息首先提交给Servlet。 • 控制器选择对当前请求进行数据处理的Model对象。 • 控制器对象选择相应的view组件作为客户的响应信息返回。 • JSP使用JavaBean中处理的数据进行数据显示。 • JSP把组织好的数据以响应的方式返回给客户端浏览。
• 3.2.5 Struts2环境搭建
3.2 Struts2框架概览
• 3.2.5 Struts2环境搭建
3.2 Struts2框架概览
• 3.2.5 Struts2环境搭建
3.2 Struts2框架概览
• 3.2.5 Struts2环境搭建
3.2 Struts2框架概览
• 3.2.5 Struts2环境搭建
• 3.1 Web开发框架概述 • 3.2 Struts2框架概览 • 3.3 Struts2
• 3.1.1 Java web应用
3.1 Web开发框架概述
3.1 Web开发框架概述
• 3.1.1 Java web应用 – 典型的J2EE框架分为四个层次: • 客户端层 • Web服务器层 • 应用服务器层 • 数据服务器层
ssh框架原理及流程

ssh框架原理及流程SSH框架原理及流程。
SSH框架是指Struts、Spring、Hibernate三大开源框架的整合,它们分别解决了Web层、业务逻辑层和数据访问层的开发问题。
SSH框架的整合,旨在充分发挥各自框架的优势,实现高效、灵活、可维护的Web应用程序开发。
在本文中,我们将深入探讨SSH框架的原理及流程。
首先,我们来了解一下SSH框架各个组成部分的原理。
Struts作为Web层框架,它采用MVC(Model-View-Controller)设计模式,将应用程序分为模型、视图和控制器三层,实现了数据、展示和控制的分离,提高了代码的复用性和可维护性。
Spring作为业务逻辑层框架,它提供了IoC(控制反转)和AOP(面向切面编程)等功能,通过IoC容器管理对象之间的依赖关系,实现了松耦合,降低了组件之间的耦合度。
Hibernate作为数据访问层框架,它提供了ORM(对象关系映射)功能,将Java对象和数据库表之间建立映射关系,实现了面向对象的数据访问,简化了数据库操作。
接下来,我们来了解SSH框架的整合流程。
首先,我们需要在项目中引入Struts、Spring、Hibernate的相关jar包,并配置它们的配置文件。
在web.xml中配置DispatcherServlet,用于拦截所有的请求,然后将请求分发给对应的Controller处理。
在Spring的配置文件中配置业务逻辑层和数据访问层的Bean,以及事务管理器等。
在Hibernate的配置文件中配置数据源、SessionFactory等。
然后,我们需要编写业务逻辑层和数据访问层的代码,并在Controller中调用业务逻辑层的方法,最终将数据返回给视图层进行展示。
在SSH框架中,我们可以充分利用Struts的表单验证、Spring的事务管理、Hibernate的持久化操作等功能,实现了Web应用程序的快速开发。
同时,SSH框架也提供了良好的扩展性,我们可以根据项目的需要,灵活地替换其中的某个框架,而不影响整体架构。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
jdk6+myeclipse8.5+tomcat6+oracle+spring2.0+hibernate3+struts2好了,开始我们的第一个ssh2之旅吧。
首先先分析一下我们的第一个ssh2项目的需求,简单的说就是有一张表单,让你填写用户名和密码,提交后存入数据库。
就这么简单,呵呵。
第一步:。
我们首先新建一张mysql数据表。
Sql如下:Create table t_employee(Id integer not null primary key,Name varchar(20),Age varchar(20),Sex varchar(20),Tel varchar(20),Address varchar(20))数据创建好后结构如下:第二步打开myeclipse,新建一个web项目,命名为ssh2-2, java ee规范我们选择5,如图第三步务必小心的一步导入ssh2的各个jar,步骤如下:选中当前的项目后,点击菜单烂的myeclipse---project capablities----add hibernate项,跳出如图务必按照图示选择,尤其是copy checkde……一项,然后点击next,默认next,去掉specify database……复选框,next,去掉create session……复选框,finish。
再次选中选中当前的项目后,点击菜单烂的myeclipse---project capablities----add spring 项,跳出如图依然务必按照如是选择,jar文件选择如下5个:点击next,之后按下选择,务必,next后finsh即可。
然后导入struts2的jar 如下5个放到lib下然后放入我们的数据库驱动jar mysql-connector-java-5.0.8-bin.jar 没得话附件中有至此,包都导入完毕第四步配置web.xml 代码如下注意注释:Xml代码1. <?xml version="1.0"encoding="UTF-8"?>2. <web-app version="2.5"3. xmlns="/xml/ns/javaee"4. xmlns:xsi="/2001/XMLSchema-instance"5. xsi:schemaLocation="/xml/ns/javaee6. /xml/ns/javaee/web-app_2_5.xsd">7.8. <!-- struts2的常规配置 -->9. <filter>10. <filter-name>struts2</filter-name>11. <filter-class>12. org.apache.struts2.dispatcher.FilterDispatcher13. </filter-class>14. </filter>15. <filter-mapping>16. <filter-name>struts2</filter-name>17. <url-pattern>/*</url-pattern>18. </filter-mapping>19.20. <!-- 在web应用启动是自动形成一个spring容器 -->21. <listener>22. <listener-class>23. org.springframework.web.context.ContextLoaderListener24. </listener-class>25. </listener>26. <welcome-file-list>27. <welcome-file>index.jsp</welcome-file>28. </welcome-file-list>29. </web-app>第五步:从视图层入手;在webroot目录下新建一个add.jsp文件如下代码;Jsp代码<%@page language="java"import="java.util.*"pageEncoding="UTF-8"%> <%@taglib uri="/jsp/jstl/core"prefix="c"%><%@taglib prefix="s"uri="/struts-tags"%><%String path = request.getContextPath();String basePath =request.getScheme()+"://"+request.getServerName()+":"+request.getServ erPort()+path+"/";%><!DOCTYPE HTML PUBLIC"-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><base href="<%=basePath%>"><title>My JSP 'start.jsp' starting page</title><meta http-equiv="pragma"content="no-cache"><meta http-equiv="cache-control"content="no-cache"><meta http-equiv="expires"content="0"><meta http-equiv="keywords"content="keyword1,keyword2,keyword3"> <meta http-equiv="description"content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">--></head><body><h1align="center">员工信息</h1><formaction="${pageContext.request.contextPath}/emp/addSaveemployee.action "method="post"><table align="center"border="2"bgcolor=""><tr><td align="center"colspan="2">员工信息录入</td></tr><tr><td>姓名</td><td><input type="text"name=""></td></tr><tr><td>年龄</td><td><input type="text"name="employee.age"></td></tr><tr><td>性别</td><td>男<input type="radio"name="employee.sex"value="0"checked>女<input type="radio"name="employee.sex"value="1"></td></tr><tr><td>电话</td><td><input type="text"name="employee.tel"></td></tr><tr><td>地址</td><td><input type="text"name="employee.address"></td></tr><tr><td align="center"colspan="2"><input type="submit"value="提交"></td></tr></table></form></body></html>接下去顺水推舟,自然开发action,及控制层新建包com.ucap.emp.action新建一个EmployeeAction.java 代码初步如下:Java代码package com.ucap.emp.action;import java.util.List;import org.apache.struts2.ServletActionContext;import com.opensymphony.xwork2.ActionSupport;import com.ucap.emp.pojo.Employee;import com.ucap.emp.service.EmployeeService;public class EmployeeAction extends ActionSupport {private Employee employee;private List<Employee> list;private EmployeeService employeeService;public List<Employee> getList() {return list;}public void setList(List<Employee> list) {this.list = list;}public EmployeeService getEmployeeService() {return employeeService;}public void setEmployeeService(EmployeeService employeeService) {this.employeeService = employeeService;}public Employee getEmployee() {return employee;}public void setEmployee(Employee employee) {this.employee = employee;}//查询public String list(){list = this.employeeService.findAll(employee);// ServletActionContext.getRequest().setAttribute("list", list);return"list";}//增加public String add(){return"add";}//增加保存public String addSave(){this.employeeService.save(this.employee);employee=new Employee();return list();}//更改之前public String updateBefore(){employee=this.employeeService.findById(employee.getId());return"update";}//更改public String update(){this.employeeService.update(employee);employee=new Employee();return list();}//删除public String delete(){this.employeeService.delete(employee);return list();}}于是,自然我们要新建一个pojo新建包com.ucap.emp.pojo新建Employee.javaJava代码package com.ucap.emp.pojo;public class Employee {private Integer id;private String name;private String age ;private String sex ;private String tel;private String address;public Employee(){}public Employee(Integer id, String name, String age, String sex, String tel,String address) {super();this.id = id; = name;this.age = age;this.sex = sex;this.tel = tel;this.address = address;}public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getName() {return name;}public void setName(String name) { = name;}public String getAge() {return age;}public void setAge(String age) {this.age = age;}public String getSex() {return sex;}public void setSex(String sex) {this.sex = sex;}public String getTel() {return tel;}public void setTel(String tel) {this.tel = tel;}public String getAddress() {return address;}public void setAddress(String address) {this.address = address;}}好了,现在我们先把控制层的action放在这里,开发业务层和持久层(DAO)新建包com.ucap.emp.dao建类EmployeeDAO.java代码如下:Java代码package com.ucap.emp.dao;import java.util.List;import com.ucap.emp.pojo.Employee;public interface EmployeeDao {public void saveEmployee(Employee employee); public void removeEmployee(Employee employee); public void updateEmployee(Employee employee);public Employee findEmployeeById(Integer id);public List<Employee> findAllEmployee(Employee employee);}这是一个接口在开发dao的实现类新建包com.ucap.emp.dao.impl建类EmployeeDAOImpl.java代码:Java代码package com.ucap.emp.dao.impl;import java.util.List;importorg.springframework.orm.hibernate3.support.HibernateDaoSupport;import com.ucap.emp.dao.EmployeeDao;import com.ucap.emp.pojo.Employee;public class EmployeeDaoImpl extends HibernateDaoSupport implements EmployeeDao {public List<Employee> findAllEmployee(Employee employee) { String hql="from Employee ";String where =" where 1= 1 ";if(employee.getName()!=null&&!"".equals(employee.getName())){ hql+=where+" and name like '%"+employee.getName()+"%' order by id desc";}return this.getHibernateTemplate().find(hql);}public void saveEmployee(Employee employee) {this.getHibernateTemplate().save(employee);}public void updateEmployee(Employee employee) {this.getHibernateTemplate().update(employee);}public void removeEmployee(Employee employee) {this.getHibernateTemplate().delete(employee);}public Employee findEmployeeById(Integer id) {Employee employ=(Employee)this.getHibernateTemplate().get(Employee.class, id);return employ;}}好了,数据持久层(dao)开发好了,按顺序,现在应该开发业务层了,新建包com.ucap.emp.service建类EmployeeService.java代码:Java代码package com.ucap.emp.service;import java.util.List;import com.ucap.emp.pojo.Employee;public interface EmployeeService {public void save(Employee employ);public void update(Employee employ);public void delete(Employee employ);public List<Employee> findAll(Employee employee);public Employee findById(Integer id);}这是一个接口类然后写实现类新建包com.ucap.emp.service.impl建类EmployeeServiceImpl.javaJava代码package com.ucap.emp.service.impl;import java.util.List;import com.ucap.emp.dao.EmployeeDao;import com.ucap.emp.pojo.Employee;import com.ucap.emp.service.EmployeeService;public class EmployeeServiceImpl implements EmployeeService {private EmployeeDao employeeDao;public EmployeeDao getEmployeeDao() {return employeeDao;}public void setEmployeeDao(EmployeeDao employeeDao) {this.employeeDao = employeeDao;}//服务层方法public void delete(Employee employ) {this.employeeDao.removeEmployee(employ);}public List<Employee> findAll(Employee employ) {return this.employeeDao.findAllEmployee(employ);}public Employee findById(Integer id) {return this.employeeDao.findEmployeeById(id);}public void save(Employee employ) {this.employeeDao.saveEmployee(employ);}public void update(Employee employ) {this.employeeDao.updateEmployee(employ);}}业务和持久层都开发好了,现在我们回到控制层action修改action的代码如下:Java代码(查看前面完整的action层代码)这里就不做出来了。