DWR详细配置

最近在项目中用到DWR框架,对配置过程粗略的进行了总结,可分为以下几步:

        1.下载 dwr.jar,放到工程的WEB-INF/lib目录下

        2.配置web.xml,加入以下内容:

                   <!-- dwr servlet 配置,debug配置参数在发布模式下修改为false -->
                   <servlet>

                           <servlet-name>dwr-invoker</servlet-name>

                           <servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>

                           <init-param>

                                  <param-name>debug</param-name>

                                  <param-value>true</param-value>

                           </init-param>

                           <init-param>

                                  <param-name>classes</param-name>

                                  <param-value>java.lang.Object</param-value>

                           </init-param>                                     

                  </servlet>

                  <servlet-mapping>

                           <servlet-name>dwr-invoker</servlet-name>

                           <url-pattern>/dwr/*</url-pattern>

                  </servlet-mapping>

        3.在WEB-INF目录下,新建dwr.xml(具体的配置文件详解请参照网上相关介绍)

                  <?xml version="1.0" encoding="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="menumanager">              <!-- 当creator为spring时, 下面为beanName --> 

                                         <param name="beanName" value="linkMenuDwr" />        <!-- 公开给javascript的java类 -->

                                        <param name="include" value="findModuleList" />             <!-- 公开给javascript的函数 -->

                                 </create>

                                 <convert match="hibernate.QyCnsfType" converter="bean">

                                         <param name="include" value="ID, name"/>                       <!-- 公开给javascript的属性 -->

                                 </convert>

                           </allow>

                 </dwr>

        4.  在项目的src目录下,新建applicationContext-dwr.xml,配置dwr.xml中用到的bean(linkMenuDwr)

                 <?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:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation="
 http://www.springframework.org/schema/beans
 http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
 http://www.springframework.org/schema/tx
 http://www.springframework.org/schema/tx/spring-tx-2.0.xsd
 http://www.springframework.org/schema/aop
 http://www.springframework.org/schema/aop/spring-aop-2.0.xsd">

                         <!-- 获取联动菜单 -->

                         <bean id="linkMenuDwr" class="com.yipu.business.dwr.LinkMenuDwr" scope="prototype">

                                  <property name="qyCnsfService" ref="qyCnsfService" />

                         </bean>

                  </beans>

        5.  LinkMenuDwr类为普通的javaBean,代码如下:(其中注入的qyCnsfService为操作数据库的业务逻辑类,代码省略)

                  public class LinkMenuDwr{

                         private QyCnsfServiceqyCnsfService;

                        /**

                          * @Descrip:获取联动菜单

                          * @paramfatherID

                          */

                         public List<QyCnsfType> findModuleList(Long fid){

                                return qyCnsfService.findModuleByFid(fid);

                         }

                         public QyCnsfService getQyCnsfService(){

                                return qyCnsfService;

                         }

                         public void setQyCnsfService(QyCnsfService qyCnsfService) {

                                this.qyCnsfService = qyCnsfService;

                         }

                 }

        6.  在客户端的网页里引入以下内容:

                 <script type="text/javascript" src="http://ajax.microsoft.com/ajax/jquery/jquery-1.4.min.js"></script>

                 <script type="text/javascript" src="<%=basePath%>dwr/engine.js"></script>

                 <script type="text/javascript" src="<%=basePath%>dwr/util.js"></script>

                 <script type="text/javascript" src="<%=basePath%>dwr/interface/menumanager.js"></script>

                <script type="text/javascript">

                         function changeSelect(srcID, srcValue) {

                                  //用js调用java函数,完成对后台业务逻辑的调用

                                  menumanager.findModuleList(srcValue, function(data){

                                             //清空options集合(两种方式)

                                             //$(srcID).options.length = 0;

                                             var ops_lenth = $(srcID).options.length;

                                             for(var i=0; i<ops_lenth; i++) {

                                                   $(srcID).options.remove(0);

                                             }

                                             //追加options集合

                                             var op_def = new Option('----请选择----',"");

                                             for(var i=0; i<=data.length; i++)  {

                                                   $(srcID).options.add(op_def);

                                                   if(i < data.length)

                                                        op_def = new Option(data[i].name,data[i].ID);  //name和ID为dwr.xml中公开的属性

                                             }

                                  });

                         }

                </script>

        body中的内容如下:  

                 <body onload="changeSelect('v1', 0);">

                      <select id="v1" onchange="changeSelect('v2', this.value);"></select>

                      <select id="v2"></select>

                 </body>

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值