DWR+SPRING整合

Posted on 2007-09-19 13:20 優雅Dě頽廢 阅读(590) 评论(0)  编辑  收藏 所属分类: 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>  

只有注册用户登录后才能发表评论。


网站导航:
 

posts - 13, comments - 1, trackbacks - 0, articles - 0

Copyright © 優雅Dě頽廢