2008-03-17
简单的struts+spring+hibernate框架注册过程
一、基本的配置
1.Java 5.0 http://java.sun.com/j2se/1.5.0/download.jsp
2.tomcat 5.x http://tomcat.apache.org/download-55.cgi
3.mysql 5.0 http://dev.mysql.com/downloads/mysql/5.0.html
4.mysql jdbc驱动 http://dev.mysql.com/downloads/connector/j/3.1.html
5.eclipse+myeclipse5.5 http://www.1cn.biz/index.php?q=node/394
6.mysqlcc 0.94 http://www.leapar.com/web/Soft/ShowSoftDown.asp?UrlID=1&SoftID=32
二、安装
1.java 解压在C:\Program Files\Java
2.tomcat 解压在C:\Program Files\Apache Software Foundation
3.mysql C:\Program Files\mysql
4.mysql jdbc 驱动包解压的mysql-connector-java-3.1.14-bin.jar放在tomcat 的common\lib目录下
准备测试文件testjdbc.jsp,放至%TOMCAT%/webapps/root/目录下,内容如下:
自己先创建一个数据库school
<%@ page contentType="text/html;charset=GB2312" %>
<%@ page import="java.sql.*" %>
<HTML>
<BODY>
<%
String driver="com.mysql.jdbc.Driver";
String url="jdbc:mysql://localhost:3306/school"; //连接到school数据库
String userid="root"; //用户
String passwd="chen"; //密码
try{
Class.forName(driver);
}
catch(Exception e){
out.println("无法载入"+driver+"驱动程序!");
e.printStackTrace();
}
try {
Connection con=DriverManager.getConnection(url,userid,passwd);
if(!con.isClosed())
out.println("成功连接数据库!");
con.close();
}
catch(SQLException SQLe){
out.println("无法连接数据库!");
}
%>
</BODY>
</HTML>
然后打开浏览器,输入地址http://localhost:8080/testjdbc.jsp
此时应出现
成功连接数据库!
测试成功
5.mysqlcc 安装后双击 mysqlcc Name=localhost Host Name=localhost User Name=root
password=(自己的密码)
再点 add
6.mysql admin安装 http://blog.chinaunix.net/u/29/showart_359339.html
首先确认admin是否已经安装, 启动tomcat服务,在浏览器中输入http://localhost:8080/admin 如果看到Tomcat Web Server Administration Tool 的页面,说明Administration Web Application 已安装好了。如果看到的是
Tomcat's administration web application is no longer installed by default. Download and install the "admin" package to use it. 说明还没有安装,进一步我们来介绍如何安装。 。。。。。
第一步:要去http://tomcat.apache.org/download-55.cgi 下载admin的压缩包,并解压。
第二步:将解压目录下的conf\Catalina\localhost\admin.xml的admin.xml 文件拷贝到tomcat安 装目录下的\conf\Catalina\localhost. 的文件夹中。注意一定要放在正确的路径的文件夹中。
第三步:将解压目录下的server\webapps中的admin整个文件夹拷贝到tomcat安装目下的 \server\webapps 文件夹中。
第四步:用能的notepad等打开 c:\Program Files\Apache Software Foundation\Tomcat 5.5 \conf\中的tomcat-users.xml 文件。在</tomcat-user>最后一行之前,加入下列一行<user username=”admin” password="tomcat" roles="admin, manager"/>注意username/password可以 是你喜欢的任意组合,但roles=”admin” 不可随意改动。
最后,重启Tomcat Server,在web浏览器中键入 http://localhost:8080/admin, 这时你如果能 看到 Tomcat Server Web Administration Tool 的login界面, 就大功告成。若是还看不到上述 页面,可检查浏览器的代理服务器的设定,使之能够接受localhost。
三、ssh
1.创建数据库
CREATE TABLE bbsuser(
id int(11) not null auto_increment,
username varchar(200) not null UNIQUE KEY,
password varchar(20) not null,
age int,
PRIMARY KEY (id)
)ENGINE=InnoDB DEFAULT CHARSET=GBK;
2.快速开发struts
2.1 创建web project myssh
2.2 添加Struts功能 Add Struts capabilities
2.3 使用Struts配置文件设置器,创建register Form,Action,Jsp(Form表单的有username,password等)
2.4 创建success.jsp failed.jsp (在forward选项中用local forward)
2.5 修改代码并测试流程
registerAction.java中做如下改变
// TODO Auto-generated method stub
System.out.println(regisiterForm.getUsername());
return mapping.findForward("success");
3.添加Hibernate功能
3.1 加入Hibernate功能 Add Hibernate capabilities
注意选择copy library 选项
我个人觉得首先把DB Browser 配置好,再添加hibernate 功能会比较方便
mysql 链接url:
jdbc:mysql://localhost:3306/[databasename]? userUnicode=true&characterEncoding=GBK
3.2 使用反向工程生产Hibernate DAO
3.3 编写测试类来测试DAO,运行java程序 数据便添加到数据库中
在生成的Bbsuser.hbm.xml 映射文件中要把
<id name="id" type="java.lang.Integer">
<column name="id" />
<generator class="assign" />
把assign 改成increment
测试类的代码如下 hibernateDAOTest.java
import hibernatedao.Bbsuser;
import hibernatedao.BbsuserDAO;
import org.hibernate.Transaction;
public class hibernateDAOTest {
public static void main(String[] args) {
// 实体类
Bbsuser user=new Bbsuser();
user.setUsername("hibernate525");
user.setPassword("test");
user.setAge(20);
//DAO 对象
BbsuserDAO dao=new BbsuserDAO();
//开始事务
Transaction tran=dao.getSession().beginTransaction();
dao.save(user);
//提交事务
tran.commit();
//列出所有对象
java.util.List<Bbsuser> list=dao.findAll();
for(Bbsuser o: list){
System.out.println(o.getUsername());
System.out.println(o.getPassword());
}
}
}
4.Hibernate整合struts
首先,在registerAction中添加BbsuserDAO对象dao 然后setter and getter,在初始化中setDao,创建dao 对象。
其次,,将 hibernateDAOTest 测试类中的数据 插入代码添加到Action中。稍改一下
//实体类
Bbsuser user=new Bbsuser();
user.setUsername(registerForm.getUsername());
user.setPassword(registerForm.getPassword());
user.setAge(20);
//DAO 对象
BbsuserDAO dao=getDao();
//开始事务
Transaction tran=dao.getSession().beginTransaction();
dao.save(user);
//提交事务
tran.commit();
重新发布,在浏览器中输入,添加成功。
STRUTS+HIBERNATE 整合成功
5.添加spring功能
5.1 spring 添加时标签库的选项要支持struts,hibernate3 及aop编程,选择copy library选项。
必须先添加hibernate 再添加spring才可以用spring 管理hibernate,注意添加sessionFactory Bean。
5.2 添加man Bean
首先,先添加man 类,字段为message ,方法为setter and getter,再在applicationContext中添加man Bean,
<bean id="man" name="man_name"
class="test.Man">
<property name="message">
<value>你好!</value>
</property>
</bean>
其次,撰写测试类,SpringTest.java
ApplicationContext ctx=new
ClassPathXmlApplicationContext("applicationContext.xml");
Man man=(Man)ctx.getBean("man");
System.out.println(man.sayHello());
在此要充分理解ApplicationContext 所做的工作就是托管业务,类似商城存包处,我们用ctx来取包。Bean为业务逻辑,我们可也近似的看成一个包,或者一个业务。
6.Spring整合 Hibernate
6.1 反向工程生成spring hibernate dao
注意修改映射文件中的id generator 的属性 改assign 为increment
同时在hibernate中修改映射文件源为spring 的映射文件
<!--
<mapping resource="hibernatedao/Bbsuser.hbm.xml" />
-->
<mapping resource="springdao/Bbsuser.hbm.xml" />
6.2 撰写SpringDAOTest类,像SpringTest中
ApplicationContext ctx=new
ClassPathXmlApplicationContext("applicationContext.xml");
//实体类
Bbsuser user=new Bbsuser();
user.setUsername("spring dao");
user.setPassword("password");
//DAO类
BbsuserDAO dao=(BbsuserDAO)ctx.getBean("BbsuserDAO");
dao.save(user);
如果mysql 版本不支持事务处理的话还可以存进数据库。
6.3 添加事务管理器
Dao管理的非常好的模板
<bean id="userDAOProxy"
//此处的user是灵活的 class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
<!-- 注意这个属性, 详细意义请参考文章开头的参考资料, 必须为 true 使用CGLIB才不用强制编写DAO接口 -->
<property name="proxyTargetClass">
<value>true</value>
</property>
<property name="transactionManager">
<ref bean="transactionManager" />
</property>
<property name="target">
<ref local="BbsuserDAO" />
</property>
<property name="transactionAttributes">
<props>
<!-- 这里的方法签名可以精确到方法, 先懒惰一下全配置上 -->
<prop key="*">PROPAGATION_REQUIRED</prop>
</props>
</property>
</bean>
此时要把BbsuserDAO dao=(BbsuserDAO)ctx.getBean("BbsuserDAO");
中BbsuserDAO改为BbsuserDAOProxy。再重新编译。
7.模拟Action代理类(SpringProxyAction)Spring整合struts
7.1 SpringProxyAction.java类的实现
/*
* Generated by MyEclipse Struts
* Template path: templates/java/JavaClass.vtl
*/
package com.yourcompany.struts.action;
import java.util.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.yourcompany.struts.form.RegisterForm;
public class SpringProxyAction extends Action {
// private Map map = new HashMap();
// {
// map.put("/ssh/register.do", new RegisterAction());
// }
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
String path = request.getRequestURI();
System.out.println(path);
ApplicationContext ctx = new
ClassPathXmlApplicationContext(
"applicationContext.xml");
// Action action = (Action)map.get(path);
Action action = (Action)ctx.getBean(path);
if(action != null) {
try {
return action.execute(mapping, form,
request, response);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return mapping.findForward("failed");
}
}
修改struts配置文件改为
<action
attribute="registerForm"
input="/form/register.jsp"
name="registerForm"
path="/register"
scope="request"
type="com.liu.struts.action.SpringProxyAction">
<forward name="failed" path="/failed.jsp" />
<forward name="success" path="/success.jsp" />
</action>
同时在applicationContext.xml中添加代理类的bean
<bean name="/mydo/register.do"
Class="com.liu.struts.action.RegisterAction">
</bean>
7.2 错误处理用log4j.properties文件处理
# Configure logging for testing: optionally with log file
log4j.rootLogger=WARN, stdout
# log4j.rootLogger=WARN, stdout, logfile
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n
log4j.appender.logfile=org.apache.log4j.FileAppender
log4j.appender.logfile.File=target/spring.log
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=%d %p [%c] - %m%n
删除asm-2.2.3.jar(在整合spring 和struts中会产生错误)
7.3 spring代理的配置
●修改RegisterAction.java 此时由spring来代理数据的存储
// //开始事务
// Transaction tran=dao.getSession().beginTransaction();
// //提交事务
// tran.commit();
● 修改引入包的名称,
import hibernate.Bbsuser -----> import springdao.Bbsuser;
import hibernate.BbsuserDAO -----> import springdao.BbsuserDAO;
●添加 private String message; 和setter and getter
●注释掉 初始化的setDao方法
public RegisterAction() {
//setDao(new BbsuserDAO());
}
●同时在applicationContext.xml中修改代理类的bean的属性
<bean name="/mydo/register.do"
Class="com.liu.struts.action.RegisterAction">
//此属性是为了输出message 而设置的
<property name="message">
<value> 你好 spring 整合 struts</value>
</property>
//此属性是为了添加dao 而设置的
<property name="dao">
<ref bean="BbsuserDAOProxy" />
</property>
</bean>
7.4 Spring整合struts
●添加 Spring Plug in
<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
<set-property property="contextConfigLocation" value="/WEB-
INF/classes/applicationContext.xml" />
</plug-in>
●替换 Action 的 Type
<action path="/register“ …
type="org.springframework.web.struts.DelegatingActionProxy" />
●在 Spring 配置文件中配置 Bean
要点: 通过 path 和 bean 的 name 进行匹配, 这两个值必须一样
<bean name="/login" class="com.test.struts.action.LoginAction"></bean>
注入 DAO 的代理 bean
7.5 Spring 整合 Struts 的两种方式
struts1加载spring的两种方式: 第一种:通过web.xml配置加载spring上下文环境,其配置方式如下: web.xml
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param>
通过listener加载 <listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
或者利用severlet类加载
<servlet>
<servlet-name>context</servlet-name>
<servlet-class>org.springframework.web.context.ContextLoaderServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
第二种方式: 使用Struts插件
在struts-config.xml中 <plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
<set-property property="contextConfigLocation"
value="/WEB-INF/applicationContext.xml"/>
</plug-in>
这两种配置的明显区别就是,第一种方式可以配置多个spring配置文件。
1.Java 5.0 http://java.sun.com/j2se/1.5.0/download.jsp
2.tomcat 5.x http://tomcat.apache.org/download-55.cgi
3.mysql 5.0 http://dev.mysql.com/downloads/mysql/5.0.html
4.mysql jdbc驱动 http://dev.mysql.com/downloads/connector/j/3.1.html
5.eclipse+myeclipse5.5 http://www.1cn.biz/index.php?q=node/394
6.mysqlcc 0.94 http://www.leapar.com/web/Soft/ShowSoftDown.asp?UrlID=1&SoftID=32
二、安装
1.java 解压在C:\Program Files\Java
2.tomcat 解压在C:\Program Files\Apache Software Foundation
3.mysql C:\Program Files\mysql
4.mysql jdbc 驱动包解压的mysql-connector-java-3.1.14-bin.jar放在tomcat 的common\lib目录下
准备测试文件testjdbc.jsp,放至%TOMCAT%/webapps/root/目录下,内容如下:
自己先创建一个数据库school
<%@ page contentType="text/html;charset=GB2312" %>
<%@ page import="java.sql.*" %>
<HTML>
<BODY>
<%
String driver="com.mysql.jdbc.Driver";
String url="jdbc:mysql://localhost:3306/school"; //连接到school数据库
String userid="root"; //用户
String passwd="chen"; //密码
try{
Class.forName(driver);
}
catch(Exception e){
out.println("无法载入"+driver+"驱动程序!");
e.printStackTrace();
}
try {
Connection con=DriverManager.getConnection(url,userid,passwd);
if(!con.isClosed())
out.println("成功连接数据库!");
con.close();
}
catch(SQLException SQLe){
out.println("无法连接数据库!");
}
%>
</BODY>
</HTML>
然后打开浏览器,输入地址http://localhost:8080/testjdbc.jsp
此时应出现
成功连接数据库!
测试成功
5.mysqlcc 安装后双击 mysqlcc Name=localhost Host Name=localhost User Name=root
password=(自己的密码)
再点 add
6.mysql admin安装 http://blog.chinaunix.net/u/29/showart_359339.html
首先确认admin是否已经安装, 启动tomcat服务,在浏览器中输入http://localhost:8080/admin 如果看到Tomcat Web Server Administration Tool 的页面,说明Administration Web Application 已安装好了。如果看到的是
Tomcat's administration web application is no longer installed by default. Download and install the "admin" package to use it. 说明还没有安装,进一步我们来介绍如何安装。 。。。。。
第一步:要去http://tomcat.apache.org/download-55.cgi 下载admin的压缩包,并解压。
第二步:将解压目录下的conf\Catalina\localhost\admin.xml的admin.xml 文件拷贝到tomcat安 装目录下的\conf\Catalina\localhost. 的文件夹中。注意一定要放在正确的路径的文件夹中。
第三步:将解压目录下的server\webapps中的admin整个文件夹拷贝到tomcat安装目下的 \server\webapps 文件夹中。
第四步:用能的notepad等打开 c:\Program Files\Apache Software Foundation\Tomcat 5.5 \conf\中的tomcat-users.xml 文件。在</tomcat-user>最后一行之前,加入下列一行<user username=”admin” password="tomcat" roles="admin, manager"/>注意username/password可以 是你喜欢的任意组合,但roles=”admin” 不可随意改动。
最后,重启Tomcat Server,在web浏览器中键入 http://localhost:8080/admin, 这时你如果能 看到 Tomcat Server Web Administration Tool 的login界面, 就大功告成。若是还看不到上述 页面,可检查浏览器的代理服务器的设定,使之能够接受localhost。
三、ssh
1.创建数据库
CREATE TABLE bbsuser(
id int(11) not null auto_increment,
username varchar(200) not null UNIQUE KEY,
password varchar(20) not null,
age int,
PRIMARY KEY (id)
)ENGINE=InnoDB DEFAULT CHARSET=GBK;
2.快速开发struts
2.1 创建web project myssh
2.2 添加Struts功能 Add Struts capabilities
2.3 使用Struts配置文件设置器,创建register Form,Action,Jsp(Form表单的有username,password等)
2.4 创建success.jsp failed.jsp (在forward选项中用local forward)
2.5 修改代码并测试流程
registerAction.java中做如下改变
// TODO Auto-generated method stub
System.out.println(regisiterForm.getUsername());
return mapping.findForward("success");
3.添加Hibernate功能
3.1 加入Hibernate功能 Add Hibernate capabilities
注意选择copy library 选项
我个人觉得首先把DB Browser 配置好,再添加hibernate 功能会比较方便
mysql 链接url:
jdbc:mysql://localhost:3306/[databasename]? userUnicode=true&characterEncoding=GBK
3.2 使用反向工程生产Hibernate DAO
3.3 编写测试类来测试DAO,运行java程序 数据便添加到数据库中
在生成的Bbsuser.hbm.xml 映射文件中要把
<id name="id" type="java.lang.Integer">
<column name="id" />
<generator class="assign" />
把assign 改成increment
测试类的代码如下 hibernateDAOTest.java
import hibernatedao.Bbsuser;
import hibernatedao.BbsuserDAO;
import org.hibernate.Transaction;
public class hibernateDAOTest {
public static void main(String[] args) {
// 实体类
Bbsuser user=new Bbsuser();
user.setUsername("hibernate525");
user.setPassword("test");
user.setAge(20);
//DAO 对象
BbsuserDAO dao=new BbsuserDAO();
//开始事务
Transaction tran=dao.getSession().beginTransaction();
dao.save(user);
//提交事务
tran.commit();
//列出所有对象
java.util.List<Bbsuser> list=dao.findAll();
for(Bbsuser o: list){
System.out.println(o.getUsername());
System.out.println(o.getPassword());
}
}
}
4.Hibernate整合struts
首先,在registerAction中添加BbsuserDAO对象dao 然后setter and getter,在初始化中setDao,创建dao 对象。
其次,,将 hibernateDAOTest 测试类中的数据 插入代码添加到Action中。稍改一下
//实体类
Bbsuser user=new Bbsuser();
user.setUsername(registerForm.getUsername());
user.setPassword(registerForm.getPassword());
user.setAge(20);
//DAO 对象
BbsuserDAO dao=getDao();
//开始事务
Transaction tran=dao.getSession().beginTransaction();
dao.save(user);
//提交事务
tran.commit();
重新发布,在浏览器中输入,添加成功。
STRUTS+HIBERNATE 整合成功
5.添加spring功能
5.1 spring 添加时标签库的选项要支持struts,hibernate3 及aop编程,选择copy library选项。
必须先添加hibernate 再添加spring才可以用spring 管理hibernate,注意添加sessionFactory Bean。
5.2 添加man Bean
首先,先添加man 类,字段为message ,方法为setter and getter,再在applicationContext中添加man Bean,
<bean id="man" name="man_name"
class="test.Man">
<property name="message">
<value>你好!</value>
</property>
</bean>
其次,撰写测试类,SpringTest.java
ApplicationContext ctx=new
ClassPathXmlApplicationContext("applicationContext.xml");
Man man=(Man)ctx.getBean("man");
System.out.println(man.sayHello());
在此要充分理解ApplicationContext 所做的工作就是托管业务,类似商城存包处,我们用ctx来取包。Bean为业务逻辑,我们可也近似的看成一个包,或者一个业务。
6.Spring整合 Hibernate
6.1 反向工程生成spring hibernate dao
注意修改映射文件中的id generator 的属性 改assign 为increment
同时在hibernate中修改映射文件源为spring 的映射文件
<!--
<mapping resource="hibernatedao/Bbsuser.hbm.xml" />
-->
<mapping resource="springdao/Bbsuser.hbm.xml" />
6.2 撰写SpringDAOTest类,像SpringTest中
ApplicationContext ctx=new
ClassPathXmlApplicationContext("applicationContext.xml");
//实体类
Bbsuser user=new Bbsuser();
user.setUsername("spring dao");
user.setPassword("password");
//DAO类
BbsuserDAO dao=(BbsuserDAO)ctx.getBean("BbsuserDAO");
dao.save(user);
如果mysql 版本不支持事务处理的话还可以存进数据库。
6.3 添加事务管理器
Dao管理的非常好的模板
<bean id="userDAOProxy"
//此处的user是灵活的 class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
<!-- 注意这个属性, 详细意义请参考文章开头的参考资料, 必须为 true 使用CGLIB才不用强制编写DAO接口 -->
<property name="proxyTargetClass">
<value>true</value>
</property>
<property name="transactionManager">
<ref bean="transactionManager" />
</property>
<property name="target">
<ref local="BbsuserDAO" />
</property>
<property name="transactionAttributes">
<props>
<!-- 这里的方法签名可以精确到方法, 先懒惰一下全配置上 -->
<prop key="*">PROPAGATION_REQUIRED</prop>
</props>
</property>
</bean>
此时要把BbsuserDAO dao=(BbsuserDAO)ctx.getBean("BbsuserDAO");
中BbsuserDAO改为BbsuserDAOProxy。再重新编译。
7.模拟Action代理类(SpringProxyAction)Spring整合struts
7.1 SpringProxyAction.java类的实现
/*
* Generated by MyEclipse Struts
* Template path: templates/java/JavaClass.vtl
*/
package com.yourcompany.struts.action;
import java.util.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.yourcompany.struts.form.RegisterForm;
public class SpringProxyAction extends Action {
// private Map map = new HashMap();
// {
// map.put("/ssh/register.do", new RegisterAction());
// }
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
String path = request.getRequestURI();
System.out.println(path);
ApplicationContext ctx = new
ClassPathXmlApplicationContext(
"applicationContext.xml");
// Action action = (Action)map.get(path);
Action action = (Action)ctx.getBean(path);
if(action != null) {
try {
return action.execute(mapping, form,
request, response);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return mapping.findForward("failed");
}
}
修改struts配置文件改为
<action
attribute="registerForm"
input="/form/register.jsp"
name="registerForm"
path="/register"
scope="request"
type="com.liu.struts.action.SpringProxyAction">
<forward name="failed" path="/failed.jsp" />
<forward name="success" path="/success.jsp" />
</action>
同时在applicationContext.xml中添加代理类的bean
<bean name="/mydo/register.do"
Class="com.liu.struts.action.RegisterAction">
</bean>
7.2 错误处理用log4j.properties文件处理
# Configure logging for testing: optionally with log file
log4j.rootLogger=WARN, stdout
# log4j.rootLogger=WARN, stdout, logfile
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n
log4j.appender.logfile=org.apache.log4j.FileAppender
log4j.appender.logfile.File=target/spring.log
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=%d %p [%c] - %m%n
删除asm-2.2.3.jar(在整合spring 和struts中会产生错误)
7.3 spring代理的配置
●修改RegisterAction.java 此时由spring来代理数据的存储
// //开始事务
// Transaction tran=dao.getSession().beginTransaction();
// //提交事务
// tran.commit();
● 修改引入包的名称,
import hibernate.Bbsuser -----> import springdao.Bbsuser;
import hibernate.BbsuserDAO -----> import springdao.BbsuserDAO;
●添加 private String message; 和setter and getter
●注释掉 初始化的setDao方法
public RegisterAction() {
//setDao(new BbsuserDAO());
}
●同时在applicationContext.xml中修改代理类的bean的属性
<bean name="/mydo/register.do"
Class="com.liu.struts.action.RegisterAction">
//此属性是为了输出message 而设置的
<property name="message">
<value> 你好 spring 整合 struts</value>
</property>
//此属性是为了添加dao 而设置的
<property name="dao">
<ref bean="BbsuserDAOProxy" />
</property>
</bean>
7.4 Spring整合struts
●添加 Spring Plug in
<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
<set-property property="contextConfigLocation" value="/WEB-
INF/classes/applicationContext.xml" />
</plug-in>
●替换 Action 的 Type
<action path="/register“ …
type="org.springframework.web.struts.DelegatingActionProxy" />
●在 Spring 配置文件中配置 Bean
要点: 通过 path 和 bean 的 name 进行匹配, 这两个值必须一样
<bean name="/login" class="com.test.struts.action.LoginAction"></bean>
注入 DAO 的代理 bean
7.5 Spring 整合 Struts 的两种方式
struts1加载spring的两种方式: 第一种:通过web.xml配置加载spring上下文环境,其配置方式如下: web.xml
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param>
通过listener加载 <listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
或者利用severlet类加载
<servlet>
<servlet-name>context</servlet-name>
<servlet-class>org.springframework.web.context.ContextLoaderServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
第二种方式: 使用Struts插件
在struts-config.xml中 <plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
<set-property property="contextConfigLocation"
value="/WEB-INF/applicationContext.xml"/>
</plug-in>
这两种配置的明显区别就是,第一种方式可以配置多个spring配置文件。







评论排行榜