zoukankan      html  css  js  c++  java
  • 【Struts2+Spring3+Hibernate3】SSH框架整合实现CRUD_1.0

    作者: hzboy192@192.com
    Blog: http://my.csdn.net/peng_hao1988
    版本总览:http://blog.csdn.net/peng_hao1988/article/details/9026897

    实现步骤:

    一、导入Spring3.0、Hibernate3.0、Struts2开发库。

    二、配置web.xml文件的内容,如下:

    <?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>


       1.如上struts2的核心控制器filter也可配置为如下类

    org.apache.struts2.dispatcher.FilterDispatcher

        2.FilterDispatcher和StrutsPrepareAndExecuteFilter、StrutsPrepareFilter、

      ExecuteFilter的区别参见:http://peng-hao1988.iteye.com/admin/blogs/1472063


    三、Spring的配置文件applicationContext.xml的配置内容如下:

    <?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>


              1.Demo默认Hibernate的DataSource、HibernateProperties、  MappingResources信息配置到applicationContext.xml文件中。 如果使用Hibernate.cfg.xml配置这些信息,需要在applicationContext.xml文件中将configLocation这个属性去掉注释,将其他的property注释或删除。

        2.applicationContext.xml默认放在webRoot\WEB-INF\路径下,如果想要将spring的配置文件移动到其他文件夹或修改名字,需要在web.xml中添加如下代码:

    <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配置如下:

    <?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>


    四、配置struts2的配置文件struts.xml如下:

    <?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>    
    

        1.当使用spring管理struts2的 action时要注意需在struts2的action配

          置文件中添加如下代码:      

    <constant name="struts.objectFactory" value="spring" />

          并且需要将struts2-spring-plugin-2.2.1.jar添加到classpath中去。

        2.如要将Struts2的默认配置文件struts.xml文件重命名或移动到WEB-INF 到下去,需要在web.xml的struts2过滤器中添加如下代码:

    <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>


    五、基本配置已经弄完了,在用工具添加MyEclipse和Eclipse添加开发库是要注意,尽量使用高版本的,如果是工具自带的库,一般不会出现问题,如果有错误的话,一般是JAR包冲突,把一些名字一样版本号不一样的包删除低版本的。如果是用户自定义的开发库最好不要随意添加JAR包,去官方下载完整的开发库,根据需要添加,如果是不知道那些是需要的,那就全部添加进去。


    注意:有部分网友反馈示例代码报错,原因是之前使用的是myeclipse,自带的lib下有servlet-api.jar文件,所以打包代码是没有吧这个jar弄进去,所以在eclipse或其他IDE下可能会报错,解决办法将将Tomcat\lib下的servlet-api.jar文件添加的WEB-INF\lib文件夹中。


    示例代码:http://download.csdn.net/detail/peng_hao1988/4191421


    》》》》》》》》》》》》》》》》转载请注明出处《《《《《《《《《《《《《《《《



  • 相关阅读:
    java server: all kinds of errors
    fragment使用的错误
    unity3d+vuforia开发增强现实例子编译
    android遇到的几个问题
    cocos2dx 特效
    cchttpclient中停止网络请求的方法
    cocos2dx 2.2.5 hitWidget->onTouchEnded(pTouch, pEvent); 异常
    将博客搬至CSDN
    ffmpeg 编译Android
    常用注解
  • 原文地址:https://www.cnblogs.com/pocter/p/3684506.html
Copyright © 2011-2022 走看看