技术开发 频道

史上最简单的struts+spring+hibernate配置实例[修订版]



    【IT168 技术文档】
本文不关心必须的JAR包,这个东东在网上能够找到很多,本文只关心如何配置,才能够让STRUTS SPRING HIBERNATE和MYSQL相关连。
开发环境:wsad5.1
Spring-Version: 1.1.4
Struts Framework 1.1
Hibernate-Version: 2.1.7
Blog.Ad0.Cn

-------- -------------------------
<web.xml>
-------- -------------------------

程序代码 程序代码

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web- app_2_3.dtd"> <web-app id="WebApp"> <display- name>MVC_BPEL_MODELWeb</display-name> <context- param> <param- name>contextConfigLocation</param-name> <param- value>/WEB- INF/Hibernate_Context.xml</param-value> </context- param> <servlet> <servlet- name>SpringContextServlet</servlet-name> <servlet- class>org.springframework.web.context.ContextLoaderServlet</servlet-class> <load-on- startup>1</load-on-startup> </servlet> <servlet> <servlet- name>action</servlet-name> <servlet- class>org.apache.struts.action.ActionServlet</servlet-class> <init- param> <param- name>config</param-name> <param- value>WEB-INF/struts -config.xml</param- value> </init- param> <init- param> <param- name>debug</param-name> <param- value>2</param-value> </init- param> <init- param> <param- name>detail</param-name> <param- value>2</param-value> </init- param> <init- param> <param- name>validate</param-name> <param- value>true</param -value> </init- param> <load-on- startup>2</load-on-startup> </servlet> <servlet- mapping> <servlet- name>action</servlet-name> <url- pattern>*.do</url- pattern> </servlet- mapping> <welcome-file- list> <welcome- file>index.html</welcome-file> <welcome- file>index.htm</welcome-file> <welcome- file>index.jsp</welcome-file> <welcome- file>default.html</welcome-file> <welcome- file>default.htm</welcome-file> <welcome- file>default.jsp</welcome-file> </welcome-file- list> <taglib> <taglib- uri>/WEB-INF/struts- bean.tld</taglib- uri> <taglib- location>/WEB- INF/struts-bean.tld</taglib-location> </taglib> <taglib> <taglib- uri>/WEB-INF/struts- html.tld</taglib- uri> <taglib- location>/WEB- INF/struts-html.tld</taglib-location> </taglib> <taglib> <taglib- uri>/WEB-INF/struts- logic.tld</taglib- uri> <taglib- location>/WEB- INF/struts-logic.tld</taglib-location> </taglib> <taglib> <taglib- uri>/WEB-INF/struts- nested.tld</taglib- uri> <taglib- location>/WEB- INF/struts-nested.tld</taglib-location> </taglib> <taglib> <taglib- uri>/WEB-INF/struts- template.tld</taglib -uri> <taglib- location>/WEB- INF/struts-template.tld</taglib-location> </taglib> <taglib> <taglib- uri>/WEB-INF/struts- tiles.tld</taglib- uri> <taglib- location>/WEB- INF/struts-tiles.tld</taglib-location> </taglib> </web- app>

-----------------------------------
<action-servlet.xml>
------------------------------------------------------------ ----------
程序代码 程序代码

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> <beans> <bean name="/User" class="com.yaya.action.UserAction" singleton="false"> <property name="userManager"> <ref bean="userManager" /> </property> </bean> </beans>
-------------------------------------------------------------------
<hibernate_context.xml>
--------------------------------------------------------- -----------
程序代码 程序代码

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring- beans.dtd"> <beans> <!-- <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="viewClass"><value>org.springframework.web.servlet.view.JstlView</value>< /property> <property name="prefix"><value>/WEB-INF/jsp/</value></property> <property name="suffix"><value>.jsp</value></property> </bean> --> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy -method="close"> <property name="driverClassName"> <value>com.mysql.jdbc.Driver</value> </property> <property name="url"> <value>jdbc:mysql://localhost/pdm</value> </property> <property name="username"> <value>root</value> </property> <property name="password"> <value></value> </property> </bean> <bean id="sessionFactory" class="org.springframework.orm.hibernate.LocalSessionFactoryBean"> <property name="dataSource"> <ref local="dataSource" /> </property> <property name="mappingResources"> <list> <value>hbm_tb/Tsysuser.hbm.xml</value> </list> </property> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect">net.sf.hibernate.dialect.MySQLDialect</prop> <prop key="hibernate.show_sql">true</prop> </props> </property> </bean> <bean id="transactionManager" class="org.springframework.orm.hibernate.HibernateTransactionManager"> <property name="sessionFactory"> <ref local="sessionFactory" /> </property> </bean> <!-- Spring的数据访 问异常转换器(Data Access Exception Translator)定义 -- > <bean id="jdbcExceptionTranslator" class="org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator"> <property name="dataSource"> <ref bean="dataSource" /> </property> </bean> <bean id="userDao" class="com.yaya.service.dao.hibernate.UserHibernateDao"> <property name="sessionFactory"> <ref local="sessionFactory" /> </property> </bean> <bean id="userManagerTarget" class="com.yaya.service.spring.UserManagerImpl"> <property name="userDao"> <ref local="userDao" /> </property> </bean> <bean id="userManager" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"> <property name="transactionManager"> <ref bean="transactionManager" /> </property> <property name="target"> <ref local="userManagerTarget" /> </property> <property name="proxyTargetClass"> <value>true</value> </property> <property name="transactionAttributes"> <props> <prop key="save*">PROPAGATION_REQUIRED</prop> <prop key="find*">PROPAGATION_REQUIRED</prop> <prop key="remove*">PROPAGATION_REQUIRED,readOnly</prop> <prop key="*">PROPAGATION_REQUIRED,readOnly</prop> </props> </property> </bean> </beans>

-------------------------------------------------------------------
<struts-config.xml>
Ad0.Cn
------------------------------------------------ -------------------
程序代码 程序代码

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd"> <struts- config> <!-- 数据源 --> <data- sources></data- sources> <!-- 表单 Bean --> <form- beans> <form-bean name="UserActionForm" type="org.apache.struts.validator.DynaValidatorForm"> <form-property name="user" type="com.yaya.hb.Tsysuser" /> </form- bean> </form- beans> <!-- 全局异常 --> <global- exceptions></global-exceptions> <!-- 全局转发 --> <global- forwards></global -forwards> <!-- 操作映射 --> <action- mappings> <action path="/User" type="org.springframework.web.struts.DelegatingActionProxy" name="UserActionForm" scope="request" parameter="method" validate="false"> <forward name="list" path="/userlist.jsp" /> <forward name="edit" path="/userform.jsp" /> </action> </action- mappings> <!-- 消息资源 --> <message-resources parameter="mvc_bpel_modelweb.resources.ApplicationResources" /> <plug-in className="org.springframework.web.struts.ContextLoaderPlugIn"> <set-property property="contextConfigLocation" value="/WEB-INF/action-servlet.xml" /> </plug- in> <plug-in className="org.apache.struts.validator.ValidatorPlugIn"> <set-property property="pathnames" value="/WEB-INF/validator-rules.xml, /WEB-INF/validation.xml"/> </plug- in> </struts- config>

------------------------------------------------------------------
UserHibernateDao.java  
Ad0.Cn
------------------------------------------------ ------------------
程序代码 程序代码
/*
* 创建日期 2005-4-7
*
* 更改所生成文 件模板为
* 窗口 > 首选项 > Java > 代码生成 > 代码和注释
*/
package com.yaya.service.dao.hibernate; import java.util.List; import org.springframework.orm.ObjectRetrievalFailureException; import org.springframework.orm.hibernate.support.HibernateDaoSupport; import net.sf.hibernate.HibernateException; import com.yaya.hb.Tsysuser; import com.yaya.service.dao.IUserDao; import java.util.List; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; /** * @author Administrator * * 更改所生成类型注释的模板为 * 窗口 > 首选项 > Java > 代码生成 > 代码和注释 */ public class UserHibernateDao extends HibernateDaoSupport implements IUserDao { private Log log = LogFactory.getLog (UserHibernateDao.class); /* (非 Javadoc) * @see com.jandar.dao.IUserDAO#getUsers() */ public List getUsers() { return getHibernateTemplate().find("from Tsysuser"); } /* (非 Javadoc) * @see com.jandar.dao.IUserDAO#getUser(java.lang.Long) */ public Tsysuser getUser(String username) { // TODO 自动生成方法存 根 if (this.getHibernateTemplate() == null) { System.out.println ("error at there"); return null; } Tsysuser user = (Tsysuser) getHibernateTemplate().get(Tsysuser.class,username); //Tsysuser user = (Tsysuser) getHibernateTemplate().find("from Tsysuser users where users.username = 'admin'",username); if (user == null) { throw new ObjectRetrievalFailureException (Tsysuser.class, username); } return user; //String msg = getHibernateTemplate().get(Tsysuser.class,username).toString(); //Tsysuser user = (Tsysuser) getHibernateTemplate().find("from Tsysuser where username = ?",username); //System.out.println(user.getUserdesc()); //System.out.println(user.getHeadship()); //return user; } /* (非 Javadoc) * @see com.jandar.dao.IUserDAO#saveUser(com.jandar.model.User) */ public void saveUser(Tsysuser user) { log.debug("xxxxxxx"); System.out.println ("yyyy"); getHibernateTemplate().saveOrUpdate(user); if (log.isDebugEnabled()) { log.debug("username set to " + user.getUsername()); } } /* (非 Javadoc) * @see com.jandar.dao.IUserDAO#removeUser(java.lang.Long) */ public void removeUser(String username) { Object user = getHibernateTemplate().load(Tsysuser.class, username); getHibernateTemplate().delete(user); if (log.isDebugEnabled()) { log.debug("del user " + username); } } }

 

0
相关文章