使用MyEclipse集成SSH和DWR(三)整合Spring和DWR

 
开发环境:
  1. JDK 1.5
  2. Tomcat 6.0
  3. Spring 2.5
  4. Struts 1.3
  5. Hibernate 3.2
  6. DWR 2.0
  7. MyEclipse 6.5
  8. SQL Server 2005

本系列文章PDF格式及示例源代码请到 此处下载

Spring与DWR整合的价值在于DWR使用的BO全部交给Spring管理,从而充分利用Spring强大的IoC和AOP特性。

1. 添加dwr.jar到WEB-INF/lib下,并在web.xml中添加对DWR的加载代码 

  1. <servlet>
  2.     <servlet-name>dwr-invoker</servlet-name>
  3. <servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
  4.     <init-param>
  5.           <param-name>debug</param-name>
  6.           <param-value>true</param-value>
  7.       </init-param>
  8. </servlet>
  9. <servlet-mapping>
  10.      <servlet-name>dwr-invoker</servlet-name>
  11.      <url-pattern>/dwr/*</url-pattern>
  12. </servlet-mapping>

2. 在DWR中加载Spring配置文件,有三种方式:

   1) 【最佳方案】使用org.springframework.web.context.ContextLoaderListener,在WEB-INF/web.xml 中做如下配置:

  1. <context-param>
  2.       <param-name>contextConfigLocation</param-name>
  3.       <param-value>/WEB-INF/classes/applicationContext.xml</param-value>
  4. </context-param>
  5. <listener>
  6. <listener-class>
  7. org.springframework.web.context.ContextLoaderListener
  8. </listener-class>
  9. </listener>

   2) 在dwr.xml中指定使用哪些bean,你可以使用location*参数。你可以指定任意多个文件,只要参数以location开始并且唯一即可。例 如:location-1, location-2。这些location被用做Spring的ClassPathXmlApplicationContext的参数:

  1. <create creator="spring" javascript="Fred"> 
  2.     <param name="beanName" value="userBO" />
  3.     <param name="location" value="beans.xml"/> 
  4. </create> 

   注意:其中beans.xml默认是读/WEB-INF/classes里的
   3) 使用DWR API里的SpringCreator类中的setOverrideBeanFactory方法来定义beans.xml的位置 

3. 在WEB-INF下添加dwr.xml配置文件,用来配置所需要暴露在前端页面的业务逻辑类。

  1. <allow>
  2.      <convert converter="bean" match="cn.qdqn.ssh.bo.UserBO" />
  3.      <create creator="spring" javascript="userBO">
  4.             <param name="beanName" value="userBO" />
  5.      </create>
  6. </allow>

4. 在前端页面中使用DWR

  1. <script type='text/javascript' src='/SSH/dwr/engine.js'></script>
  2. <script type='text/javascript' src='/SSH/dwr/util.js'></script>
  3. <script type='text/javascript' src='/SSH/dwr/interface/userBO.js'></script>
  4. <script type="text/javascript" language="javascript">
  5.             function checkUserName(){
  6.                 var userName=document.getElementsByName("name")[0].value;
  7.                 userBO.isNotExists(userName,callback);
  8.                 function callback(isNotExist){
  9.                     if(isNotExist){
  10.                         alert("可以使用");
  11.                     }else{
  12.                         alert("该用户已经被注册!");
  13.                     }
  14.                 }
  15.             }
  16. </script>
  17. …………
  18. <html:button property="check" value="Check"onclick="checkUserName()"/>
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值