论坛首页 入门技术论坛

dwr spring整合

浏览 2165 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-08-26  

Ajax,它使浏览器可以为用户提供更为自然的浏览体验,对于j2EE WEB开发人员来说,使用DWR框架可以很简单的使用Ajax技术.
本文以一个DWR+SPRING的实例来说明DWR的使用
1、将dwr.jar放到应用的/WEB-INF/lib目录下
2、配置web.xml,增加如下代码:

代码
  1. <!--初始化WebApplicationContext-->  
  2.  <context-param>  
  3.         <param-name>contextConfigLocation</param-name>  
  4.         <param-value>/WEB-INF/applicationContext.xml,/WEB-INF/action-servlet.xml</param-value>  
  5.  </context-param>  
  6.  <listener>  
  7.        <listener-class>  
  8.              org.springframework.web.context.ContextLoaderListener   
  9.        </listener-class>  
  10.  </listener>  
  11. <!--配置DWR拦截器-->  
  12.  <servlet>  
  13.   <servlet-name>dwr-invoker</servlet-name>  
  14.   <servlet-class>uk.ltd.getahead.dwr.DWRServlet</servlet-class>  
  15.   <init-param>  
  16.    <param-name>debug</param-name>  
  17.    <param-value>true</param-value>  
  18.   </init-param>  
  19.  </servlet>  
  20.  <servlet-mapping>  
  21.   <servlet-name>dwr-invoker</servlet-name>  
  22.   <url-pattern>/dwr/*</url-pattern>  
  23.  </servlet-mapping>  


3、增中dwr.xml文件
文件内容:

代码
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 1.0//EN" "http://www.getahead.ltd.uk/dwr/dwr10.dtd">  
  3. <dwr>  
  4.  <allow>  
  5.   <create creator="spring" javascript="DWRUser">  
  6.    <param name="beanName" value="DWRUser"/>  
  7.   </create>  
  8.  </allow>  
  9. </dwr>  


creator属性的值可以是new,struts,spring......因为此处是整合spring来做的,所以设置成“spring”,javascript="DWRUser" 表示实例转换成javascript语言后以DWRUser命名,前台页面可以通过代码(<script type='text/javascript' src='../../dwr/interface/DWRUser.js'></script>)来调用。param元素的name属性值可以是class,beanName等,此处用beanName,value得值是定义在applicationContext.xml中某个bean的id值。
4、创建一个实体bean供DWR转换成js

代码
  1. package com.note.dwr;   
  2. import com.note.bussies.service.IUserService;   
  3. public class User {   
  4.  private IUserService ius;   
  5.     
  6.  public IUserService getIus() {   
  7.   return ius;   
  8.  }   
  9.  public void setIus(IUserService ius) {   
  10.   this.ius = ius;   
  11.  }   
  12.  public User(){   
  13.      
  14.  }   
  15.  public boolean isExist(String username) {   
  16.       Users user = this.ius.getUserByName(username);   
  17.       return (null == user) ? false : true;   
  18.  }   
  19. }  


5、在applicationContext.xml中配置第4步写的bean

代码
  1. ......   
  2.  <bean id="DWRUser" class="com.note.dwr.User">  
  3.   <property name="ius">  
  4.    <ref bean="UserService" />  
  5.   </property>  
  6.  </bean>  
  7. ......  


6、在视图页面中调用
先导入以下文,每个文件的功能这里不再详述

代码
  1. <script type='text/javascript' src='../../dwr/interface/DWRUser.js'></script>  
  2. <script type='text/javascript' src='../../dwr/engine.js'></script>  
  3. <script type='text/javascript' src='../../dwr/util.js'></script>  


因为我的视图文件是放在/view/user/下,所以这里用了../../返回到根
具体调用:

代码
  1. <script type='text/javascript'>  
  2.  function regUserChked(){   
  3.   var username=$("username").value;   
  4.   DWRUser.isExist(username,showData);//showData回调函数   
  5.  }   
  6.  function showData(data){   
  7.      if(data){   
  8.           DWRUtil.setValue("userMsg","该用户名已经被注册,请更换您的用户名!");   
  9.      }else{   
  10.           DWRUtil.setValue("userMsg","恭喜您,该用户名尚未被注册!");         
  11.      }   
  12.  }   
  13. </script>  
  14. input type="text" name="username" value="" onblur="regUserChked()" /><div id="userMsg"></div>  
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics