shaokun305的专栏

做J2EE一流架构师 E-Mail:shaokun305@gmail.com

shaokun305
shaokun305的公告
留言板 New
这里是我一个温馨的港湾,记录下我的生活成长和技术成长的经历,随着岁月的流逝,这里将是我的一个最美丽的回忆.
最近评论
wangbin3961:果然有效!
jinxinzhang:应该加catalina.sh里面吧

你可以在页面打印出内存看看,效果
miracle9i:非常详细 谢谢
wadefelix:当被记者问及是不是现在房地产价格太贵,已经让老百姓买不起时,汪光焘解释说,如果现在房子没有销售了,“你这个结论是可以的”,但现在还有人买,所以这个结论“不好说”。(郭少峰)
///
这样的话都敢说,这就是在为房地产商撑腰嘛,恳请总理把他撤了。
guojingDua:炒股票。买基金这篇文章怎么打不开呀。。。
文章分类
收藏
相册
稿笑图库
美女
java相关站点
CSDN
java世界
java研究组织
java解道
与java共舞
中国java
深入struts1.1
朋友的友情连接
http://blog.csdn.net/asklxf/
lxgljj
同事老朱的博客
戈壁草的博客
老康得网站
存档
软件项目交易
订阅我的博客
XML聚合  FeedSky
订阅到鲜果
订阅到Google
订阅到抓虾
订阅到BlogLines
订阅到Yahoo
订阅到GouGou
订阅到飞鸽
订阅到Rojo
订阅到newsgator
订阅到netvibes

原创 spring和struts整合中注意的问题收藏

新一篇: 换了一个新工作 | 旧一篇: 使用Spring的javamail注意的中文问题

 

spring框架和struts框架可以方便得进行整合,一般可以有三四种整合方式。

其中最常用的就是采用struts的action交给spring进行代理管理。但其中会遇到一些问题:

1. 首先注意版本的问题,如果使用struts1.2则应该使用spring.1.2x的版本,如果使用2.x的版本会无法加载相应的xml中的配置。

2。 注意整合中导入spring中对struts的支持包:  spring-struts.jar和spring-web.jar

3。其他就是配置 在web.xml配置

 

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
    xmlns:xsi
="http://www.w3.org/2001/XMLSchema-instance" version="2.4"
    xsi:schemaLocation
="http://java.sun.com/xml/ns/j2ee   http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

    
<context-param>
        
<param-name>contextConfigLocation</param-name>
        
<param-value>
            /WEB-INF/classes/applicationContext.xml
        
</param-value>
    
</context-param>

    
<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>3</param-value>
        
</init-param>
        
<init-param>
            
<param-name>detail</param-name>
            
<param-value>3</param-value>
        
</init-param>
        
<load-on-startup>0</load-on-startup>
    
</servlet>
    
<!--<servlet>
        <servlet-name>SpringContextServlet</servlet-name>
        <servlet-class>org.springframework.web.context.ContextLoaderServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
                  这个servlet和下面的listence用其中任意一个即可    
-->
      
<listener>
      
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  
</listener>
    
<servlet-mapping>
        
<servlet-name>action</servlet-name>
        
<url-pattern>*.do</url-pattern>
    
</servlet-mapping>
    
</web-app>

如果不配置监听或者apring的servlet,则无法进行加载。

4. spring的applictionContent.xml 比较简单就是配置一个bean和action

<?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="helloTest" class="cn.HelloTest"></bean>
    
<bean name="/helloAction" class="cn.action.HelloAction">
        
<property name="helloService">
            
<ref bean="helloTest" />
        
</property>
    
</bean>
</beans>

其中 name="/helloAction" 必须和struts的配置文件中的path一致  class即是struts的aciton类

5。struts的配置文件如下

 

<?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 />
  
<global-exceptions />
  
<global-forwards />
  
<action-mappings >
  
  
<action path="/helloAction"
            type
="org.springframework.web.struts.DelegatingActionProxy">
            
<forward name="ok" path="/ok.jsp"></forward>
        
</action>
  
</action-mappings>
  
<message-resources parameter="com.yourcompany.struts.ApplicationResources" />
</struts-config>

注意的是这里struts的action指向spring的一个代理类:org.springframework.web.struts.DelegatingActionPro通过代理建立关联。

6.其他就很简单了,看看action类的内容:

 

/*
 * Generated by MyEclipse Struts
 * Template path: templates/java/JavaClass.vtl
 
*/

package cn.action;

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 cn.IHelloService;

/** 
 * MyEclipse Struts
 * Creation date: 03-13-2008
 * 
 * XDoclet definition:
 * @struts.action validate="true"
 
*/

public class HelloAction extends Action {
    
/*
     * Generated Methods
     
*/


    
private IHelloService helloService;

    
/** 
     * Method execute
     * 
@param mapping
     * 
@param form
     * 
@param request
     * 
@param response
     * 
@return ActionForward
     
*/

    
public ActionForward execute(ActionMapping mapping, ActionForm form,
            HttpServletRequest request, HttpServletResponse response) 
{
        
// TODO Auto-generated method stub

        String type 
= "aa";
        
if (request.getParameter("type").equals("1")) {
            System.out.println(
"================================");
            System.out.println(
this.helloService.getString(type));
        }
 else {
            System.out.println(
"&&&&&&&&&&&&&&&&&&&&&&&&");
        }

        
return null;
    }


    
/**
     * 
@return 返回 helloService。
     
*/

    
public IHelloService getHelloService() {
        
return helloService;
    }


    
/**
     * 
@param helloService 要设置的 helloService。
     
*/

    
public void setHelloService(IHelloService helloService) {
        
this.helloService = helloService;
        System.out.println(
">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>");
    }

}

 

ok,这样基本完成了配置,对于另外的IHelloService 接口和实现类 HelloTest  内容很简单。不粘贴了。

 

发表于 @ 2008年03月13日 16:06:00|评论(loading...)|编辑

新一篇: 换了一个新工作 | 旧一篇: 使用Spring的javamail注意的中文问题

评论:没有评论。

发表评论  


当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
Csdn Blog version 3.1a
Copyright © shaokun305