SSH集成spring-Struts2整合详细步骤
SSH2整合实例详细教程

本次教程是SSH2的环境搭建,主要用到的技术是struts2.0+hibernate3.2+spring2.0,这种架构在现在很流行的,也是很多高校学生做毕业设计的架构,今天我们就用这种架构做一个简单的实例,详细的步骤,在于抛砖引玉,给大家一点启发。
一、创建数据库的时候会创建出联合主键<Composite-id>。
二、项目创建1、打开MyEclipse,点击File,指向New,点击Web Project。
2、输入工程名SSH,J2EE Specification Level为Java EE 5.0,点Finish即可创建完项目。
三、添加hibernate环境1、右击刚建立的SSH项目,指向MyEclipse,点击Add Hibernate Capabilities。
2、出现如下对话框之后,选择要用到的Hibernate3.2,以及所用到的包,选择Copy checked Library Jars to project folder and add to build-path,点击Next。
3、到了这一步,按默认设置,点击Next。
4、取消Specify database connection details的选择,再点击Next。
5、取消Create SessionFactory class选择,最后点击Finish。
这样一些有关hibernate的jar包点导进来了,以及建了一个hibernate.cfg.xml文件。
导入前:导入后:四、添加spring环境1、和添加hibernate环境的方法大致相同,右击SSH项目,指向MyEclipse,点击Add spring Capabilities。
2、选择要用到的Spring 2.0,勾选用到的库,注意还要勾选Spring 2.0 Web Libraries的库,一共是勾选了5个库的。
再选择Copy checked Library contents to project folder(TLDs always copied),点击Next。
三大框架整合及其原理

一搭建三大框架步骤1 搭建s2sh步骤分析:1.1在MyEclipse 里面新建一个 java web project1.2新建三个 Source Folder :src : 源文件config : 存放配置文件 : hibernate , spring , struts2test: 测试类1.3 导入环境需要的jar 包 : WebRoot/WEB-INF/lib (一共64个)2 搭建Hibernate 和Spring 整合(*根据搭建需求谁能先测试就先搭建谁)2.1 在 src 源文件里面建立一个 cola.s2sh.domain[并且在该包下创建一个持久类和该类的映射文件] .2.2 配置核心文件在 config 里面建立一个hibernate 文件夹里面创建hibernate.cfg.xml配置文件(里面的内容拷贝就可以)2.3 在spring 文件夹里面创建并且把sessionFactory 交给spring 来管理: [applicationContext-db.xml中引入][<bean id="sessionFactory"class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="configLocation"><value>classpath:hibernate/hibernate.cfg.xml</value> </property></bean>]在 applicationContext.xml 中 : 导入<import resource="applicationContext-db.xml"/>2.4 测试sessionFactory[编写SpringUtils 然后继承这个][public class SpringUtils {public static ApplicationContext context;static {context = newClassPathXmlApplicationContext("spring/applicationContext.xml" );}}]2.5 编写 dao .service 的包类和接口;PersonDaoImpl 要继承HibernateDaoSupport[public class PersonDaoImpl extends HibernateDaoSupport implements PersonDao {public void savePerson(Person person) {this.getHibernateTemplate().save(person);}}]2.6 把 dao ,service 放在spring 容器中:[<bean id="personDao"class="cola.s2sh.daoImpl.PersonDaoImpl"> <property name="sessionFactory"><ref bean="sessionFactory"/></property></bean><bean id="personService"class="cola.s2sh.service.impl.PersonServiceImpl"><property name="personDao"><ref bean="personDao"/></property></bean>]2.7 完成 spring 声明式处理 :[<!-- 事务管理 --><bean id="transactionManager"class="org.springframework.orm.hibernate3.HibernateTransactionManager"><property name="sessionFactory"><ref bean="sessionFactory"/></property></bean><tx:advice id="tx"transaction-manager="transactionManager"><tx:attributes><tx:method name="save*"read-only="false"/><tx:method name="update*"read-only="false"/><tx:method name="delete*"read-only="false"/><!--除了上面三种情况以外的情况--><tx:method name="*"read-only="true"/></tx:attributes></tx:advice><aop:config><aop:pointcutexpression="execution(* cola.s2sh.service.impl.*.*(..))"id="perform"/><aop:advisor advice-ref="tx"pointcut-ref="perform"/> </aop:config>]2.8 整合struts 创建 action 类包 ;2.9 把action 放在spring 容器中* 注意在personAction的spring的配置中一定要写一个属性scope="prototype"[<bean id="personAction"class="cola.s2sh.action.PersonAction" scope="prototype"><property name="personService"><ref bean="personService"/></property></bean>]在这个中引入下面3.0 编写struts2中配置文件Struts –person.xml中Struts.xml3.1 编写web .xml文件[<?xml version="1.0"encoding="UTF-8"?><web-app xmlns:xsi="/2001/XMLSchema-instance"xmlns="/xml/ns/javaee"xmlns:web="/xml/ns/javaee/web-app_2_5.xsd"xsi:schemaLocation="/xml/ns/javaee/xml/ns/javaee/web-app_3_0.xsd"id="WebApp_ID"version="3.0"><display-name>cola.s2sh</display-name><listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener><!—将srping放在SrvletContext中进行加载当servlet加载时 spring 也完成加载 --> <context-param><param-name>contextConfigLocation</param-name><param-value>classpath:spring/applicationContext.xml</param-value> </context-param><filter><filter-name>OpenSessionInViewFilter</filter-name><filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class></filter><filter-mapping><filter-name>OpenSessionInViewFilter</filter-name><url-pattern>*.action</url-pattern></filter-mapping><filter><filter-name>struts2</filter-name><filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter -class></filter><filter-mapping><filter-name>struts2</filter-name><url-pattern>/*</url-pattern></filter-mapping>]二原理分析:一、 Struts 2框架整合Spring步骤1、复制文件。
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。
struts2+spring3+hibernate整合教程

Struts2+Spring3+hibernate3整合(2011年7月末,最新)上次下载了一个教程,上面写着:“献给我亲爱的老婆!”(羡慕不已)。
想了想,我没老婆,难道没什么好写了!不难…献给我暗恋过的每一个女人!(嘿嘿…)如果在你遇到的女生中有一个幽默豁达的女生,不要犹豫,追上去,就娶她了!一,需要的框架包二,建立project,添加相应的.jar文件(重点)1,eclipse中建立dynamic web project,这里是ssh_integrate_0100。
2,src中创建需要的类,这里以一个域模型为user的例子说明。
(现在建立这些类,可以方便我们在搭建时候随时测试!)User.javaIUserDao.javaUserDaoImpl.javaIUserService.javaUserServiceImpl.java3,拷贝spring-framework-3.1.0\dist目录下的所有jar包,注意有一个不是jar的文件,当然拷过去也没事。
4,拷贝spring运行中需要的其他jar文件,主要是mons-logging,可以从spring-framework-3.0.2.RELEASE-dependencies中找到。
ii.Aspectjrt.jar和aspect-waver.jar,可以从spring-framework-2.5.6-with-dependencies/lib/aspectj下面找到(不知道为什么,spring-framework-3.0.2.RELEASE-dependencies中没有aspectjrt的jar包)iii.aopalliance.Jar,apache-dbcp.jar,apache-pool.jar,可以从spring-framework-3.0.2.RELEASE-dependencies中找到。
5,建立beans.xml,这里使用的是annotation和component-scan,这样配置可以大大简化配置,所以是best-practice,其他配置请参考spring文档。
基于SSH呼叫中心排班系统的设计与实现

基于SSH呼叫中心排班系统的设计与实现摘要:随着呼叫中心规模不断壮大,服务水平与员工舒适度、管理便利性与资源利用率、以及效率与公平之间的博弈也越来越突出。
基于SSH,阐述了呼叫中心排班系统的设计与实现,重点描述了系统各个功能模块、系统流程、所采用的关键技术和排班算法、及使用SSH的系统整合实现。
系统在某南方供电分公司呼叫中心已实施,从而验证了算法的准确性、合理性。
与同类其他系统比较,该系统具有更安全、更稳定、更易扩展、更易维护之优点。
关键词:SSH;呼叫中心;排班管理;Erlang C0 引言随着呼叫中心规模的不断扩大,其管理工作也变得日益复杂,如何通过分析现有的历史话务数据,结合员工的不同技能来完成呼叫中心人力资源的最佳配置,成了管理者们所关注的重要问题。
但是目前小型呼叫中心现存的手工排班,由于各方面的局限性,无法解决所面对的种种问题和冲突。
呼叫中心排班系统的诞生,是为了替代复杂的手工排班,通过预测、排班、统计分析管理等途径,提高呼叫中心的整体服务水平,提升客户的满意度,降低不必要的运营成本,并且提高员工的满意度。
1 SSH框架现代的企业开发中,越来越多地引入了多层架构设计模式,SSH(Spring、Struts和Hibernate,简称为SSH)是目前比较流行的开源框架,它提出了一种开发J2EE 应用的轻量级解决方案,以帮助开发人员在短期内搭建结构清晰、可复用性好、维护方便的Web应用系统。
1.1 SSH框架整合开发SSH框架是利用Struts2框架作为系统整体的基础技术架构,Struts2负责了MVC(Model-View-Cotroller,模型-视图-控制)的分离;Spring框架的核心是IoC (Inversion of Control,控制翻转)/ DI(Dependence Injection,依赖注入)机制,负责架构的结合;Hibernate架构来提供持久层支持。
1.2 Struts与Spring的整合Spring提供了自己的Web框架.同时也提供了与其他流行的Web框架整合的能力。
当前SSH布局和初始化步骤

在web.xml中加入如下语句:
<context-param>
<param-name>contextConfigLocation</param-name>
1.建立项目
2.搭建环境
Hibernate:
添加jar(9+1):
hibernate-distribution-3.3.2.GA/hibernate3.jar
hibernate-distribution-3.3.2.GA/lib/required/*(6个)
,复制以下内容
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
</listener>
###好了,现在可以启动服务器测试以下是否存在问题.
</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
创建struts.xml文件:可以到/apps/struts2-blank-2.2.1/WEB-INF/src/java文件夹下复制struts.xml文件.
配置Web.xml:
SSH矿建中spring配置步骤

---》next -- --》------》 finish 完成
第六步: 开始写底层代码, 先写接口 ---》再写实现类 (实现类要继承hibernateDaoSupport)
写完底层代码 要在 spring.xml文件中 进行配置
在 struts 中配置国际化
<!-- 配置国际化 value 的值 要和 .properties的文件的名称一致-->
<constant name="struts.custom.i18n.resources" value="message"></constant>
在页面中如何应用 国际化
</tag>
第十四步: 创建tree节点
要 导入 dtree.css样式, img图片文件,dtree.js文件
在页面上也要引用
<!-- dree使用的 引入js 和 css -->
<script type="text/javascript" src="js/dtree.js"></script>
和 两个文件(jquery.easyui.min.js,jquery-1.7.2.min.js);
Unable to load configuration. - [unknown location]错误:
解决问题步骤:
第一,jar包冲突,检查项目中的jar包是否同时有
xerce.jar和xml-apis.jar这两个jar包,有的话删除xerce.jar
idea搭建ssh框架的超详细教程

idea搭建ssh框架的超详细教程⽬录⼀。
创建项⽬1.new->project出现如下2.构建⽬录结构⼆。
Struts21.⾸先引⼊struts2依赖2.WEB-INF下web.xml⽂件配置3.在resources下添加struts.xml⽂件4.在action包下创建TestAction类,为了测试在webapp下新建了test.jsp页⾯5.部署6.启动测试三。
Spring1.⾸先引⼊spring相关依赖2.在web.xml中添加listener,并在resources下新建spring,xml⽂件四。
Hibernate1.引⼊hibernate依赖2.View--》Toolwindows---->Database3.编写代码⼀。
创建项⽬先附上测试的数据库DROP TABLE IF EXISTS `user`;CREATE TABLE `user` (`id` int(5) NOT NULL AUTO_INCREMENT,`name` varchar(10) COLLATE utf8_bin DEFAULT NULL,`password` varchar(10) COLLATE utf8_bin DEFAULT NULL,`remark` varchar(50) COLLATE utf8_bin DEFAULT NULL,PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 COLLATE=utf8_bin;-- ------------------------------ Records of user-- ----------------------------INSERT INTO `user` VALUES ('1', 'zhangsan', '123456', null);INSERT INTO `user` VALUES ('2', 'lisi', '123', null);INSERT INTO `user` VALUES ('3', 'wangan', '456', null);INSERT INTO `user` VALUES ('4', 'xinxi', '000', null);1.new->project出现如下点击next后出现如下填写GroupId和ArtifactId在点击next直⾄finish2.构建⽬录结构在main下新建java和resources⽬录如下并将java⽬录标记为Sources Root,resources标记为Resources Root在java下新建如下包package⼆。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
搭建SSH框架spring与struts2的集成1:单独配置struts一:导入struts包二:编写Actionpublic class JboaEmployeeAction extends ActionSupport { public String login(){System.out.println("login..............");return SUCCESS;}}三:配置struts.xml<?xml version="1.0"encoding="UTF-8"?><!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN""/dtds/struts-2.3.dtd"><struts><package name="sys"namespace="/"extends="struts-default"><action name="jboaEmployeeAction"class="action.JboaEmployeeAction" method="login"><result name="success">index.jsp</result></action></package></struts>四:配置web.xml ---struts2的核心控制器<?xml version="1.0"encoding="UTF-8"?><!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN""/dtds/struts-2.3.dtd"><struts><package name="sys"namespace="/"extends="struts-default"><action name="jboaEmployeeAction"class="action.JboaEmployeeAction" method="login"><result name="success">index.jsp</result></action></package></struts>五:测试struts配置是否成功在IE测试输入:http://localhost:8080/spring3_02/jboaEmployeeAction2:准备spring与strus2的集成一:导入包struts2-spring-plugin-2.3.14.jar二:配置web.xml---spring的监听器如果导入了struts2-spring-plugin-2.3.14.jar后,没有配置如下代码,则会报错com/opensymphony/xwork2/spring/SpringObjectFactory.java<context-param><param-name>contextConfigLocation</param-name><param-value>classpath:applicationContext.xml</param-value></context-param><listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener>三:在Action中,如何访问业务Bean第一种:按名字匹配(推荐)// jboaEmployeeService这个名字,应该对应业务层bean的id值private JboaEmployeeService jboaEmployeeService;public void setJboaEmployeeService(JboaEmployeeService jboaEmployeeService) { System.out.println("已经注入业务对象jboaEmployeeService.....");this.jboaEmployeeService = jboaEmployeeService;}第二种:按类型匹配关键:根据set方法中的参数类型匹配!在struts.xml中配置常量: P74页最下面一段,和p75页最上面一段有说明<constant name="struts.objectFactroy.spring.autoWire" value="type"></constant> 3:案例:根据登陆用户,判断职位目的:突出说明OpenSessionInViewFilter一:编写login.jsp<%@page language="java"pageEncoding="UTF-8"%><%@taglib prefix="s"uri="/struts-tags"%><!DOCTYPE HTML PUBLIC"-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><title>登录</title></head><body><h1>登录</h1><s:form action="jboaEmployeeAction"method="post"><s:textfield name="employee.empName"label="用户名"/><s:password name="employee.empPwd"label="密码"/><s:submit value="登录"></s:submit></s:form></body></html>二:编写Actionpublic class JboaEmployeeAction extends ActionSupport {private JboaEmployeeService jboaEmployeeService;private JboaEmployee employee;public String login(){System.out.println("login..............");JboaEmployee newEmployee =jboaEmployeeService.login(employee);//将登陆的信息都放入sessionMap<String, Object> session = ActionContext.getContext().getSession();session.put("newEmployee", newEmployee);System.out.println("职位是:"+newEmployee.getJboaPosition().getPosNameCn());String ret = SUCCESS;if (newEmployee == null) {System.out.println("返回登陆................");ret = INPUT;}return ret;}public void setJboaEmployeeService(JboaEmployeeService jboaEmployeeService) {System.out.println("已经注入业务对象jboaEmployeeService.....");this.jboaEmployeeService = jboaEmployeeService;}public JboaEmployee getEmployee() {return employee;}public void setEmployee(JboaEmployee employee) {this.employee = employee;}}三:编写index.jsp编写测试代码:职位是:${newEmployee.jboaPosition.posNameCn }</br>欢迎:${newEmployee.empName }------------------分割线------------------------- 运行index.jsp之后,获取职位信息【报错】!解决方案一:<many-to-one name="jboaPosition" class="entity.JboaPosition" fetch="select" lazy="false"> 加上lazy="false"立即加载!解决方案二:(推荐)关键点:1:在web.xml配置如下代码,必须放在struts核心控制器的前面2:访问路径必须带结尾是*.action,否则无法触发.OpenSessionInViewFilter<filter><filter-name>OpenSessionInViewFilter</filter-name><filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter </filter-class></filter><filter-mapping><filter-name>OpenSessionInViewFilter</filter-name><url-pattern>*.action</url-pattern></filter-mapping>4:HibernateCallback实现自定义的分页一:接口:/*** 利用回调函数,实现分页* @param page* @param size* @return*/public List<JboaEmployee> find(final int page,final int size);二:实现:public List<JboaEmployee> find(final int page, final int size) { List<JboaEmployee> result = getHibernateTemplate().executeFind(new HibernateCallback() {public Object doInHibernate(Session session)throws HibernateException, SQLException {Query query = session.createQuery("from JboaEmployee");query.setFirstResult((page-1)*size);query.setMaxResults(size);return query.list();}});return result;}5:struts2与spring整合的第二种方式一:配置applicationContext.xml<!--action层--><bean id="employeeAction"class="action.JboaEmployeeAction"scope="prototype"><property name="jboaEmployeeService"ref="jboaEmployeeService"></property></bean>二:修改struts.xml<action name="jboaEmployeeAction"class="employeeAction"method="login"> <result name="success">index.jsp</result></action>注意【黄色】部分必须一致,但是<bean id="employeeAction">的id值,不要和action name="jboaEmployeeAction">的值相同。