日历

2008 8.20 Wed
     12
3456789
10111213141516
17181920212223
24252627282930
31      
«» 2008 - 8 «»

文章搜索

日志文章

2008年01月13日 22:22:31

struts与spring整合

下面记录下struts与spring的整合.这里主要用的方法是使用spring的DelegatingRequestProcessor类覆盖struts的RequestProcessor类.这种方法的好处便是将struts与spring分离,降低耦合度.
OK,下面开始吧!先简单介绍下体系结构.
有一个业务接口,org.hj.intdao.IUserDao.java
简单代码如下:

Copy code

package org.hj.intdao;
public interface IUserDao {
public boolean adduser(String name,String pwd);
}


有一个实现IUserDao的类,org.hj.dao.UserDao.java
简单代码如下:
Copy code

package org.hj.dao;
import org.hj.intdao.IUserDao;
public class UserDao implements IUserDao {
public boolean adduser(String name,String pwd){
if(name.equals(pwd))
return true;
else return false;
}
}

下面就是struts中action类,
Copy code

package org.hj.struts.action;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.actions.DispatchAction;
import org.hj.intdao.IUserDao;
import org.hj.struts.form.RegistForm;
public class RegistAction extends DispatchAction {
//定义一个接口引用,这个属性由spring容器管理,参见spring配置文件
private IUserDao dao;
public IUserDao getDao() {
return dao;
}
public void setDao(IUserDao dao) {
this.dao = dao;
}
public ActionForward add(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
RegistForm rf = (RegistForm) form;
//调用后台业务方法
boolean remark = dao.adduser(rf.getName(), rf.getPwd());
request.setAttribute("name", rf.getName());
if (remark)
return mapping.findForward("success");
else
return mapping.findForward("fail");
}
}

OK, 无论您使用什么方法,都需要使用 Spring ContextLoaderPlugin Struts ActionServlet 装载 Spring 应用程序环境。就像添加任何其他插件一样,简单地向您的
struts-config.xml 文件添加该插件,如下所示:
plug-in className=“org.springframework.web.struts.ContextLoaderPlugIn
set-property property=“contextConfigLocation” value=/WEB-INF/beans.xml/
/plug-in
下面就是struts配置文件.
Copy code

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd">
<struts-config>
<data-sources />
<form-beans>
<form-bean name="registForm"
type="org.hj.struts.form.RegistForm" />
</form-beans>
<global-exceptions />
<global-forwards />
<action-mappings>
<action attribute="registForm" input="/regist.jsp"
name="registForm" parameter="method" path="/regist" scope="request"
type="org.hj.struts.action.RegistAction">
<forward name="success" path="/success.jsp"></forward>
<forward name="fail" path="/fail.jsp"></forward>
</action>
</action-mappings>
<!-- 将请求先由spring中的DelegatingRequestProcessor截获 -->
<controller
processorClass="org.springframework.web.struts.DelegatingRequestProcessor" />

<message-resources parameter="org.hj.struts.ApplicationResources" />
<plug-in
className="org.springframework.web.struts.ContextLoaderPlugIn">
<set-property property="contextConfigLocation"
value="/WEB-INF/applicationContext.xml" />
</plug-in>
</struts-config>

下面是spring配置文件. applicationContext.xml
Copy code

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<!-- name表示在struts配置文件中间的path一致 -->
<bean name="/regist" class="org.hj.struts.action.RegistAction">
<property name="dao">
<ref bean="User" />
</property>
</bean>
<!-- spring管理对应的javabean对象 -->
<bean id="User" class="org.hj.dao.UserDao"></bean>
</beans>

OK,就这么多,上传份源代码...(由于上传困难,因此删除了lib下的所有jar)

aa_ssh.rar




Tags: ssh  

类别: ssh |  评论(8) |  浏览(1966) |  收藏
8楼 [匿名]gcusujck 2008年08月20日 12:35:02 Says:
%5Bb%5D%5Bsize=3%5D%E9%BE%99%E5%85%B4%E7%BD%91%E7%BB%9C%E6%98%AF%E5%9B%BD%E5%86%85%E4%B8
7楼 [匿名]7awzixrg 2008年08月14日 07:27:02 Says:
%5Burl=http://www.lxwltg.com/%5D%E5%88%9B%E9%B8%BF%E8%BD%AF%E4%BB%B6%EF%BC%8C%E7%8E%B0%E5%9C%A8%E5%8F%AF%E4%BB%A5%E5%90%914200%E5%AE%B6%E5%9B%BD%E5%86%85%E5%88%86%E7%B1%BB%E4%BF%A1%E6%81%AF%E6%B8%AF%E5%8F%91%E5%B8%83%E4%BE%9B%E6%B1%82%E4%BF%A1%E6%81%AF%EF%BC%8C600%E5%AE%B6%E7%9A%84%E6%90%9C%E7%B4%A2%E5%BC%95%E6%93%8E%E7%99%BB%E9%99%86%EF%BC%8C800%E5%AE%B6%E7%9A%84%E9%BB%84%E9%A1%B5%E7%99%BB%E9%99%86%EF%BC%8C%E5%B9%B6%E4%B8%94%E5%8C%85%E6%8B%AC36000%E4%B8%AA%E5%90%84%E4%B8%AA%E7%B1%BB%E5%88%AB%E7%9A%84%E5%8F%AF%E5%8F%91%E5%B8%83%E5%95%86%E5%8A%A1%E4%BF%A1%E6%81%AF%E7%9A%84%E7%BB%BC%E5%90%88%E7%BD%91%E7%AB%99%E4%BF%A1%E6%81%AF%E5%B9%BF%E6%92%AD%E5%8A%9F%E8%83%BD%EF%BC%8C%E6%88%90%E5%8A%9F%E7%8E%87%E6%97%A0%E5%8F%AF%E6%AF%94%E6%8B%9F%EF%BC%8C%E9%AA%8C%E8%AF%81%E7%A0%81%E5%87%A0%E4%B9%8E%E5%81%9A%E5%88%B0%E4%BA%86%E5%85%A8%E8%87%AA%E5%8A%A8%E8%AF%86%E5%88%AB%EF%BC%8C%E8%87%AA%E5%8A%A8%E5%A1%AB%E5%86%99%EF%BC%81%E5%B9%B6%E4%B8%94%E5%A2%9E%E5%8A%A0%E4%BA%86%E6%AF%8F%E5%A4%A9%E6%88%96%E6%AF%8F%E5%91%A8%E6%88%96%E6%AF%8F%E6%9C%88%E5%85%A8%E8%87%AA%E5%8A%A8%E6%89%A7%E8%A1%8C%E8%AE%A1%E5%88%92%E4%BB%BB%E5%8A%A1%E7%9A%84%E5%BC%BA%E5%A4%A7%E5%8A%9F%E8%83%BD%EF%BC%81%E6%97%A0%E9%9C
6楼 [匿名]0u6ej0tn 2008年08月13日 19:59:36 Says:
%5Burl=http://www.lxwltg.com/%5D%E5%88%9B%E9%B8%BF%E8%BD%AF%E4%BB%B6%EF%BC%8C%E7%8E%B0%E5%9C%A8%E5%8F%AF%E4%BB%A5%E5%90%914200%E5%AE%B6%E5%9B%BD%E5%86%85%E5%88%86%E7%B1%BB%E4%BF%A1%E6%81%AF%E6%B8%AF%E5%8F%91%E5%B8%83%E4%BE%9B%E6%B1%82%E4%BF%A1%E6%81%AF%EF%BC%8C600%E5%AE%B6%E7%9A%84%E6%90%9C%E7%B4%A2%E5%BC%95%E6%93%8E%E7%99%BB%E9%99%86%EF%BC%8C800%E5%AE%B6%E7%9A%84%E9%BB%84%E9%A1%B5%E7%99%BB%E9%99%86%EF%BC%8C%E5%B9%B6%E4%B8%94%E5%8C%85%E6%8B%AC36000%E4%B8%AA%E5%90%84%E4%B8%AA%E7%B1%BB%E5%88%AB%E7%9A%84%E5%8F%AF%E5%8F%91%E5%B8%83%E5%95%86%E5%8A%A1%E4%BF%A1%E6%81%AF%E7%9A%84%E7%BB%BC%E5%90%88%E7%BD%91%E7%AB%99%E4%BF%A1%E6%81%AF%E5%B9%BF%E6%92%AD%E5%8A%9F%E8%83%BD%EF%BC%8C%E6%88%90%E5%8A%9F%E7%8E%87%E6%97%A0%E5%8F%AF%E6%AF%94%E6%8B%9F%EF%BC%8C%E9%AA%8C%E8%AF%81%E7%A0%81%E5%87%A0%E4%B9%8E%E5%81%9A%E5%88%B0%E4%BA%86%E5%85%A8%E8%87%AA%E5%8A%A8%E8%AF%86%E5%88%AB%EF%BC%8C%E8%87%AA%E5%8A%A8%E5%A1%AB%E5%86%99%EF%BC%81%E5%B9%B6%E4%B8%94%E5%A2%9E%E5%8A%A0%E4%BA%86%E6%AF%8F%E5%A4%A9%E6%88%96%E6%AF%8F%E5%91%A8%E6%88%96%E6%AF%8F%E6%9C%88%E5%85%A8%E8%87%AA%E5%8A%A8%E6%89%A7%E8%A1%8C%E8%AE%A1%E5%88%92%E4%BB%BB%E5%8A%A1%E7%9A%84%E5%BC%BA%E5%A4%A7%E5%8A%9F%E8%83%BD%EF%BC%81%E6%97%A0%E9%9C
5楼 [匿名]My Name 2008年01月16日 10:33:09 Says:
My Comments
4楼 [匿名]My Name 2008年01月16日 10:31:54 Says:
My Comments
3楼 [匿名]silver 2008年01月16日 10:30:14 Says:
silvert29
2楼 [匿名]1 2008年01月16日 10:29:44 Says:
1
发表评论