我的日常

登录/注册
您现在的位置:论坛 盖世程序员(我猜到了开头 却没有猜到结局) 盖世程序员 > 【Struts2+Spring3+Hibernate3】SSH框架整合
总共48086条微博

动态微博

查看: 1283|回复: 0

【Struts2+Spring3+Hibernate3】SSH框架整合

[复制链接]

326

主题

72

听众

999

金钱

实习版主

该用户从未签到

优秀版主

跳转到指定楼层
楼主
发表于 2014-07-17 13:43:38 |只看该作者 |倒序浏览
一、导入spring3.0、hibernate3.0、struts2开发库。
二、配置web.xml文件的内容,如下:
! @# |! L; Y% h8 P' {
<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">  <display-name></display-name>  <welcome-file-list>    <welcome-file>index.jsp</welcome-file>  </welcome-file-list>  <listener>    <description>Spring core configuration</description>    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>  </listener>  <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>*.action</url-pattern>  </filter-mapping></web-app>
+ u: ]. V6 g' n4 X1 s* i( }
   1.如上struts2的核心控制器filter也可配置为如下类

- X" i# X2 |; p! M5 B9 F6 Z
; B+ [- k; m/ h  \1 i% a2 U5 |1 R
" G% \& M4 ?. }8 |9 G5 x# \org.apache.struts2.dispatcher.FilterDispatcher
    2.FilterDispatcher和StrutsPrepareAndExecuteFilter、StrutsPrepareFilter、
  ExecuteFilter的区别参见:
# X! F6 {1 h. M! u0 ]) j4 @. t. h
3 Q* }7 w: g' |$ J9 e
三、Spring的配置文件applicationContext.xml的配置内容如下:
1 I: I+ h; Y* _8 j' R4 b) B4 Y
<?xml version="1.0" encoding="UTF-8"?><beans        xmlns="http://www.springframework.org/schema/beans"        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"        xmlns:p="http://www.springframework.org/schema/p"        xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">        <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">                <property name="driverClassName"                        value="com.mysql.jdbc.Driver">                </property>                <property name="url" value="jdbc:mysql://localhost:3306/myssh">                </property>                <property name="username" value="root"></property>                <property name="password" value="123"></property>        </bean>        <bean id="sessionFactory"                class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">                <!-- if use the hibernate.cfg.xml as dataSource configuration, cancel the annotations -->                <!-- remove other properties and dataSource bean. -->                <!--                 <property name="configLocation" value="classpath:hibernate.cfg.xml" />                 -->                <property name="dataSource">                        <ref bean="dataSource" />                </property>                <property name="hibernateProperties">                        <props>                                <prop key="hibernate.dialect">                                        org.hibernate.dialect.MySQLDialect                                </prop>                                <prop key="hibernate.hbm2ddl.auto">update</prop>                        </props>                </property>                <property name="mappingResources">                        <list>                                <value>com/hzboy/orm/Userinfo.hbm.xml</value>                        </list>                </property>        </bean>                        <bean id="userAct" class="com.hzboy.action.UserManagerAct" scope="prototype">                <property name="userService" ref="userService"></property>        </bean>                <bean id="userService" class="com.hzboy.service.UserManagerService">                <property name="dao" ref="dao"></property>        </bean>                <bean id="dao" class="com.hzboy.dao.BaseDao">                <property name="sessionFactory" ref="sessionFactory"/>        </bean></beans>4 v; r, @+ t4 {6 R2 q' @+ B
          1.Demo默认Hibernate的DataSource、HibernateProperties、
    MappingResources信息配置到applicationContext.xml文件中。
    如果使用Hibernate.cfg.xml配置这些信息,需要在
    applicationContext.xml文件中将configLocation这个属性去
    掉注释,将其他的property注释或删除。
   2.applicationContext.xml默认放在webRoot\WEB-INF\路径下,
    如果想要将spring的配置文件移动到其他文件夹或修改名字,需要在
    web.xml中添加如下代码:

+ S8 J  p, L" ]9 A$ q& \! E<context-param>          <description>                我的spring配置文件放在WEB-INF根目录下,文件名为springconfig.xml        </description>          <param-name>contextConfigLoaction</param-name>          <param-value>/WEB-INF/springconfig.xml</param-value></context-param>
    3.Demo默认Hibernate的DataSource、HibernateProperties、
      MappingResources信息配置到applicationContext.xml文件
      中。如果使用Hibernate.cfg.xml配置这些信息,需要在
      applicationContext.xml文件中将configLocation这个属性
      去掉注释,并将其他的property注释或删除。
      Hibernate.cfg.xml配置如下:

4 N$ B$ Q& x7 ~$ ~% s2 B. @<?xml version='1.0' encoding='UTF-8'?><!DOCTYPE hibernate-configuration PUBLIC          "-//Hibernate/Hibernate Configuration DTD 3.0//EN"          "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"><!-- Generated by MyEclipse Hibernate Tools. --><hibernate-configuration>        <session-factory>                <property name="hbm2ddl.auto">update</property>                <property name="dialect">                        org.hibernate.dialect.MySQLDialect                </property>                <property name="connection.url">                        jdbc:mysql://localhost:3306/myssh                </property>                <property name="connection.username">root</property>                <property name="connection.password">123</property>                <property name="connection.driver_class">                        com.mysql.jdbc.Driver                </property>                <property name="myeclipse.connection.profile">MySQL</property>                <mapping resource="com/hzboy/orm/Userinfo.hbm.xml" />        </session-factory></hibernate-configuration>
5 J5 g! p" u" _1 a+ N. I
四、配置struts2的配置文件struts.xml如下:

$ q, P+ y8 m4 I: B<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN"         "http://struts.apache.org/dtds/struts-2.1.dtd"><struts>        <constant name="struts.objectFactory" value="spring" />        <package name="myApp" extends="struts-default">                <global-results>                        <result name="error">/WEB-INF/jsp/error.jsp</result>                        <result name="success">/WEB-INF/jsp/success.jsp</result>                </global-results>                <action name="userManagerAct" class="userAct" method="doLogin">                        <result name="login">/index.jsp</result>                </action>                                <action name="query" class="userAct" method="doQuery" />                <action name="delete" class="userAct" method="doDelete" />                <action name="edit" class="userAct" method="doEdit">                        <result name="editUser">/WEB-INF/jsp/editUser.jsp</result>                </action>                                <action name="add" class="userAct" method="doAdd">                        <result name="addUser">/WEB-INF/jsp/addUser.jsp</result>                </action>        </package></struts>   
0 ~2 D8 ~6 Z' @- A: A7 O, K; `. L& H0 z. d6 h
    1.当使用spring管理struts2的 action时要注意需在struts2的action配
      置文件中添加如下代码:      
<constant name="struts.objectFactory" value="spring" />/ s# ]/ _7 i8 k% B) l4 V) ~
      并且需要将struts2-spring-plugin-2.2.1.jar添加到classpath中去。
    2.如要将Struts2的默认配置文件struts.xml文件重命名或移动到WEB-INF
     到下去,需要在web.xml的struts2过滤器中添加如下代码:

4 S7 H& n( {* P- ?<init-param>            <description>我的struts配置文件放在WEB-INF根目录下,文件名为action.xml</description>          <param-name>config</param-name>          <param-value>struts-default.xml,struts-plugin.xml,../action.xml</param-value></init-param>
  c* b/ z, P: [, p7 X
五、基本配置已经弄完了,在用工具添加MyEclipse和Eclipse添加开发库是要注意
,尽量使用高版本的,如果是工具自带的库,一般不会出现问题,如果有错误的话,一
般是JAR包冲突,把一些名字一样版本号不一样的包删除低版本的。如果是用户自定义
的开发库最好不要随意添加JAR包,去官方下载完整的开发库,根据需要添加,如果是
在不知道那些是需要的,那就全部添加进去。
% s* Y. p4 Y% Z9 H/ i

我的日常 1、本主题所有言论和图片纯属会员个人意见,与本社区立场无关
2、本站所有主题由该帖子作者发表,该帖子作者与我的日常享有帖子相关版权
3、其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和我的日常的同意
4、帖子作者须承担一切因本文发表而直接或间接导致的民事或刑事法律责任
5、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责
6、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
7、我的日常管理员和版主有权不事先通知发贴者而删除本文


JAVA爱好者①群:JAVA爱好者① JAVA爱好者②群:JAVA爱好者② JAVA爱好者③ : JAVA爱好者③

快速回复
您需要登录后才可以回帖 登录 | 立即注册

   

关闭

站长推荐上一条 /1 下一条

发布主题 快速回复 返回列表 联系我们 官方QQ群 科帮网手机客户端
快速回复 返回顶部 返回列表