首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

Struts1 Spring DWR的调整

2012-10-30 
Struts1 SpringDWR的整合最近在写三大框架整合 其实主要就是一些配置文件问题,三大框架整合其实也就是Stru

Struts1 Spring DWR的整合
最近在写三大框架整合 其实主要就是一些配置文件问题,三大框架整合其实也就是Struts和Spring的整合 ,因为Hibernate和Spring的整合 eclipse已经帮我们做得很好了!而Struts和Spring的整合,主要是因为Spring的注入式管理bean方式,所以也要求在Struts和DWR中用到的bean也交给Spring来管理。所以这里就要求Spring的配置文件的解析时机(我的个人理解)。
时机一:web容器读取web.xml时候 ,通过web.xml配置加载spring上下文环境。
  修改web.xml配置:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
version="2.5"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee   http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
      
       <context-param>
       <param-name>contextConfigLocation</param-name>
       <param-value>/WEB-INF/classes/applicationContext.xml</param-value>
       </context-param>
      
       <!-- 通过listener加载      
         <listener>
        <listener-class>
            org.springframework.web.context.ContextLoaderListener
        </listener-class>
        </listener>-->
       

       <!--或者通过servlet加载-->
      
             <servlet>    
             <servlet-name>context</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>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-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
    <servlet>
</web-app>
   时机2:容器读取strut-config.xml
   使用Struts插件在struts-config.xml中
<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
<set-property property="contextConfigLocation" value="/WEB-INF/applicationContext.xml"/>
</plug-in>
这时需要对<action path="/login" type=""/>配置中属性type做更改:
   这里又有两种方法:
    a 使用 org.springframework.web.struts.DelegatingActionProxy :
       将所有的action type属性改为这个,这样做的好处是可以不用任何spring特定的类编写Struts Action,也有不足之处就是不太直观,所有的路径都映射到了一个类。这样也就有了第二种方法:
    b 请求委托
      <controller processorencoding="UTF-8"?>
<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN" "http://www.getahead.ltd.uk/dwr/dwr20.dtd">
<dwr>
  <allow>
    <create creator="spring" javascript="testDWR">
      <param name="beanName" value="testDWR">
      </param>
      <include method="test"/>
    </create>
  </allow>
</dwr>
spring中配置:
<bean id="testDWR" class="com.time.util.TestDWR"></bean>

热点排行