一.搭建环境:
1.导入spring包
(2.5的和2.0不一样的是得多导一个包,dist/modules/spring-webmvc-struts.jar)
DelegatingActionProxy在这个包里
2.因为spring已经导入了hibernate需要的其他的包,在这只需导入hibernate3.jar
3.导入struts相应的包,经测试struts1.3.0里要把所有与spring不冲突的包都导进来,不然会提示错误,原因待测试。
二.编码
User.java,UserDao.java(UserDaoHbImpl.java),UserBiz.java(UserBizImpl)
三.配置
1. 引入hibernate
在ApplicationContext.xml里配置hibernate必须的sessionFactory,
(1) dataSource,这里采用apache的dbcp
,也可以使用别的数据源。
(2) sessionFactory,在以前的hibernate.cfg.xml中要配置的内容现在全部转移到这个bean的配置中来了,包括数据源,hibernate
的相关属性以及映射文件源。
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="dataSource" ref="dataSource"/> <property name="hibernateProperties"> <props> <prop key="hibernate.show_sql">true</prop> <prop key="hibernate.format_sql">true</prop> <prop key="hibernate.dialect">org.hibernate.dialect.Oracle9Dialect</prop> </props> </property> <property name="mappingResources"> <list> <value>com/rainhat/shopping/entity/User.hbm.xml</value> </list> </property> </bean>
(3) template,spring为hibernate提供的一个dao层模板。
2. 配置要使用spring的IOC创建的bean,比如dao,biz对象。以及spring的事务管理配置
3. 引入struts,以及对spring的ApplicationContext配置
Web.xml:
<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> <load-on-startup>2</load-on-startup> </servlet> <servlet-mapping> <servlet-name>action</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping>
Struts-config.xml
<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn"> <set-property property="contextConfigLocation" value="/WEB-INF/action-servlet.xml,/WEB-INF/hibernate.xml"/> </plug-in>
4. 配置User.hbm.xml和action
User.hbm.xml:
<class name="User" table="cart_user"> <id name="id" column="id"> <generator class="sequence"> <param name="sequence">seq_cart_user_id</param> </generator> </id> <property name="name"/> <property name="address"/> <property name="postcode"/> <property name="email"/> <property name="home_phone"/> <property name="cell_phone"/> <property name="office_phone"/> <property name="user_type"/> </class>
在struts-config.xml和ApplicationContext.xml中配置action,注意在action的path与beanName的一至性。
Struts-config.xml中:
<action path="/a" type="org.springframework.web.struts.DelegatingActionProxy"> <forward name="ok" path="/ok.jsp"></forward> <forward name="error" path="/error.jsp"></forward> </action>
ApplicationContext.xml中:
<bean name="/a" class="com.rainhat.shopping.action.MyAction"> <property name="dao" ref="dao"/> </bean>
一.创建用户表,编写Action及所需显示层组件jsp
create table cart_user( id integer primary key, name varchar2(32) not null unique, password varchar2(32) not null, address varchar2(512), postcode varchar2(10), email varchar2(32), home_phone varchar2(32), cell_phone varchar2(32), office_phone varchar2(32), user_type varchar2(1) ); CREATE SEQUENCE seq_cart_user_id;
二.部署到tomcat,测试