Spring 2.5 & Dwr 2.0 配置文档

Spring 2.5 & Dwr 2.0 配置文档

1 编辑Web.xml 加 入对 Spring dwr的支持

 

Java代码
  1. <servlet >   
  2.     <servlet-name> dwr-invoker </servlet-name>   
  3.     <servlet-class >   
  4.           org.directwebremoting.spring.DwrSpringServlet  
  5.     </servlet-class >   
  6.     <init-param>   
  7.           <param-name> debug </param-name>   
  8.           <param-value> true  </param-value>   
  9.     </ init-param>   
  10.     <load-on-startup>3 </load-on-startup>   
  11. </servlet>   
  12. <servlet-mapping>   
  13.      <servlet-name>dwr-invoker</servlet-name>   
  14.      <url-pattern>/dwr/*</url-pattern>  
  15. </servlet-mapping>   
<servlet > 
    <servlet-name> dwr-invoker </servlet-name> 
    <servlet-class> 
          org.directwebremoting.spring.DwrSpringServlet
    </servlet-class> 
    <init-param> 
          <param-name> debug </param-name> 
          <param-value> true </param-value> 
    </ init-param> 
    <load-on-startup>3</load-on-startup> 
</servlet> 
<servlet-mapping> 
     <servlet-name>dwr-invoker</servlet-name> 
     <url-pattern>/dwr/*</url-pattern>
</servlet-mapping> 


 

   这里有个小技巧:查看Dwr源码,在DwrSpringServlet 中, 它会查找Spring的WebApplicationContext,如下:

 

 

Java代码
  1. WebApplicationContext webappContext = WebApplicationContextUtils.getRequiredWebApplicationContext (servletContext);   
  2. container = new  SpringContainer();   
  3. container.setBeanFactory(webappContext);   
  4. ContainerUtil.setupDefaults(container, servletConfig);   
  5. ContainerUtil.setupFromServletConfig(container, servletConfig);   
WebApplicationContext webappContext = WebApplicationContextUtils.getRequiredWebApplicationContext (servletContext); 
container = new SpringContainer(); 
container.setBeanFactory(webappContext); 
ContainerUtil.setupDefaults(container, servletConfig); 
ContainerUtil.setupFromServletConfig(container, servletConfig); 


 

    所以,你必须在Web.xml 中加上Spring 的ContextLinstener才能正常使用Dwr:

 

 

Java代码
  1. <!--Configurate Spring first!-->   
  2. <context-param>   
  3.      <param-name>contextConfigLocation</param-name>   
  4.      <param-value>   
  5.            /WEB-INF/applicationContext.xml   
  6.      </param-value>   
  7. </context-param>   
  8. <listener>   
  9.      <listener-class >  
  10.           org.springframework.web.context.ContextLoaderListener     
  11.      </listener-class >   
  12. </listener>   
  13.    
  14. <servlet>   
  15.      <servlet-name>dwr-invoker</servlet-name>   
  16.      <servlet-class >   
  17.            org.directwebremoting.spring.DwrSpringServlet   
  18.      </servlet-class >   
  19.      <init-param>   
  20.           <param-name>debug</param-name>   
  21.           <param-value>true </param-value>   
  22.      </init-param>   
  23.      <load-on-startup>3 </load-on-startup>   
  24. </servlet>   
  25. <servlet-mapping>   
  26.      <servlet-name>dwr-invoker</servlet-name>   
  27.      <url-pattern>/dwr/*</url-pattern>   
  28. </servlet-mapping>   
<!--Configurate Spring first!--> 
<context-param> 
     <param-name>contextConfigLocation</param-name> 
     <param-value> 
           /WEB-INF/applicationContext.xml 
     </param-value> 
</context-param> 
<listener> 
     <listener-class>
          org.springframework.web.context.ContextLoaderListener   
     </listener-class> 
</listener> 
 
<servlet> 
     <servlet-name>dwr-invoker</servlet-name> 
     <servlet-class> 
           org.directwebremoting.spring.DwrSpringServlet 
     </servlet-class> 
     <init-param> 
          <param-name>debug</param-name> 
          <param-value>true</param-value> 
     </init-param> 
     <load-on-startup>3</load-on-startup> 
</servlet> 
<servlet-mapping> 
     <servlet-name>dwr-invoker</servlet-name> 
     <url-pattern>/dwr/*</url-pattern> 
</servlet-mapping> 

 

说明:

org.directwebremoting.spring.DwrSpringServlet 这个类是 dwr 专门为整合 spring 提供的一个 servlet ,加入这个之后, dwr 的配置就可以写入到 spring 的配置文件 applicationContext.xml 省掉了 dwr.xml

 

 2 编辑Spring的配置文件 applicationContext.xml 加入对dwr的配置     

 

Java代码
  1. <?xml version= "1.0"  encoding= "UTF-8" ?>   
  2. <beans   
  3.     xmlns ="http://www.springframework.org/schema/beans"      
  4.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    
  5.     xmlns:dwr="http://www.directwebremoting.org/schema/spring-dwr"                                         
  6.     xsi:schemaLocation="http://www.springframework.org/schema   
  7.  /beans   
  8.     "http://www.springframework.org/schema/beans/spring-beans-2.0.xsd   
  9.     "http://www.directwebremoting.org/schema/spring-dwr   
  10.     "http://www.directwebremoting.org/schema/spring-dwr-2.0.xsd" >   
  11.   
  12. <!-- DWR 配置开始 -->   
  13. <dwr:configuration>   
  14.      <dwr:convert class = "ww.support.web.dwr.validate.FieldValidateInfo"  type= "bean" >   
  15.      </dwr:convert>   
  16. </dwr:configuration> <dwr:controllerid="dwrController" debug= "true" />   
  17. <!-- DWR 配置结束 -->   
  18.   
  19. <!-- spring bean 配置 -->   
  20. <bean id="genericValidatorDwr"   class = "ww.support.web.dwr.validate.GenericValidator" >   
  21.      // 定义调用的js文件    
  22.    <dwr:remote  javascript="genericValidatorDwr" >   
  23.           <dwr:include method="isEmpty"  />   
  24.           <dwr:include method="isNotNumeric"  />   
  25.           <dwr:include method="isNumberNotInRange"  />  
  26.           <dwr:include method="isNumberGreaterThan"  />   
  27.      </dwr:remote>   
  28. </bean>   
  29.   
  30. </beans>   
<?xml version="1.0" encoding="UTF-8"?> 
<beans 
    xmlns ="http://www.springframework.org/schema/beans"   
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:dwr="http://www.directwebremoting.org/schema/spring-dwr"                                      
    xsi:schemaLocation="http://www.springframework.org/schema
 /beans 
    "http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
    "http://www.directwebremoting.org/schema/spring-dwr
    "http://www.directwebremoting.org/schema/spring-dwr-2.0.xsd"> 

<!-- DWR配置开始 --> 
<dwr:configuration> 
     <dwr:convert class="ww.support.web.dwr.validate.FieldValidateInfo" type="bean"> 
     </dwr:convert> 
</dwr:configuration> <dwr:controllerid="dwrController"debug="true"/> 
<!-- DWR配置结束 --> 

<!-- spring bean配置 --> 
<bean id="genericValidatorDwr" class="ww.support.web.dwr.validate.GenericValidator"> 
     // 定义调用的js文件 
   <dwr:remote  javascript="genericValidatorDwr"> 
          <dwr:include method="isEmpty" /> 
          <dwr:include method="isNotNumeric" /> 
          <dwr:include method="isNumberNotInRange" />
          <dwr:include method="isNumberGreaterThan" /> 
     </dwr:remote> 
</bean> 

</beans> 


 

 

说明:

  要加入 dwr 的定义  xmlns:dwr = http://www.directwebremoting.org/schema/spring-dwr

  还有 http://www.directwebremoting.org/schema/spring-dwr

    http://www.directwebremoting.org/schema/spring-dwr-2.0.xsd

  所有 dwr 的定义要加 dwr 的前缀

 

 3 jsp的调用   

 

 

Java代码
  1. <script  type =  'text/javascript'    
  2.      src = '<%=request.getContextPath()%>/dwr/engine.js' > </script>   
  3. <script  type = 'text/javascript'    
  4.      src = '<%=request.getContextPath()%>/dwr/util.js' >  
  5. </script>   
  6. <script  type='text/javascript'    
  7.      src = '<%=request.getContextPath()%>/dwr/interface/genericValidatorDwr.js' >   
  8. </script>   
  9.   
  10. <script  type = 'text/javascript' >  
  11.      genericValidatorDwr.isNotNumeric(name,value,message, {      
  12.           callback:function(dataFromServer) {  
  13.               yourFunction(dataFromServer);   
  14.           }   
  15.      });   
  16.   
  17.      function yourFunction(data){   
  18.           alert(data.message);   
  19.      }  
  20.   
  21.  </script>   
<script  type = 'text/javascript' 
     src = '<%=request.getContextPath()%>/dwr/engine.js'> </script> 
<script  type = 'text/javascript' 
     src = '<%=request.getContextPath()%>/dwr/util.js'>
</script> 
<script  type='text/javascript' 
     src = '<%=request.getContextPath()%>/dwr/interface/genericValidatorDwr.js'> 
</script> 

<script  type = 'text/javascript'>
     genericValidatorDwr.isNotNumeric(name,value,message, {    
          callback:function(dataFromServer) {
              yourFunction(dataFromServer); 
          } 
     }); 

     function yourFunction(data){ 
          alert(data.message); 
     }

 </script> 


 

   genericValidatorDwr.js 就是通过 applicationContext.xml 文 件配置的 AJAX 操作类

 

  4  检测 dwr 是否正确工作的方法,可以在浏览器地址栏输入 http://localhost:8080/appName/dwr

               

       可以 看到可供 dwr 调用的方法

      

       出现这个表示 dwr 已经配置成 功

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值