论坛首页 海阔天空论坛

dwr的基本运用

浏览 9263 次
精华帖 (0) :: 良好帖 (0) :: 灌水帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2010-10-29   最后修改:2010-11-02
Tips:纯三段式的ajax一直没怎么使用过,还是喜欢使用dwr

一、在web.xml中配置dwr
引用

<!-- 添加dwr配置 -->
  <servlet>
     <servlet-name>dwr</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</servlet-name>
    <url-pattern>/dwr/*</url-pattern>
</servlet-mapping>
<!-- 上下文监听器:是否初始化 -->
<listener>
  <listener-class>
  org.springframework.web.context.ContextLoaderListener
  </listener-class>
</listener>
       <!-- 认识上下文环境 -->
<context-param>
  <param-name>contextConfigLocation</param-name>
  <param-value>
   /WEB-INF/applicationContext.xml
  </param-value>
  </context-param>


二、编写dwr.xml
引用
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN" "http://getahead.org/dwr/dwr20.dtd">
<dwr>
<!-- dwr.xml中在dwr下面只能带一个allow对象,所有的对象函数声明均放在这个对象下面  -->
  <allow>
  <!-- 创建一个IUserinfo.js文件-->
     <create javascript="IUserinfo" creator="spring">
      <param name="beanName" value="IUserinfo" />
         <include method="checkUserName" />
         <include method="checkPswd" />
         <include method="checkLogin" />
     </create>
     <!-- 方法返回集合,集合的数据从Object转成Userinfo类 -->
     <convert match="com.us.Dao.Userinfo" converter="bean"/>
    
      <!-- 创建一个IArticle.js-->
     <create javascript="IArticle" creator="spring">
      <param name="beanName" value="IArticle" />
         <include method="getPageData" />
         <include method="getTotalPage" />
     </create>
     <convert match="com.us.Dao.Article"  converter="bean"/>
    
  </allow>
</dwr>


三、测试是否成功



PS:点击进去里面封装了所有的方法(如下图所示)



PS:输入参数,单击“Execute”按钮执行,可以查看执行结果.

四、在页面中的使用
1、引入生成的js文件
引用
<script type='text/javascript' src='/BlogOnline/dwr/interface/IArticle.js'></script>


2、实现数据的同步交互
<script language="javascript">
//显示分页加载的数据
function selectPageData()
{
    var pageId = 1;
    IArticle.getPageData(pageId,4,backList);
}
function backList(list)
{
    clear();
    alert(list.size());
    for(var i=0;i<list.size();i++)
    {
       var row = document.createElement("tr");
       var cloTitle = document.createElement("td");
       cloTitle.innerText = list[i].title;
       row.appendChild(cloTitle);
       tabBody.appendChild(row);
    }
}
//清空表格数据
function clear()
{
    if(tabBody.childNodes.length>0)
       tabBody.removeChild(tabBody.firstChild);
}
</script>

3、在页面加载中进行调用
<body background="" onLoad="selectPageData()">

4、局部更新
引用
<table width="100%" border="0" align="right" bgcolor="#FFFFFF" >
    <tr>
    <td height="26" align="left" background="images/titleBg.jpg" valign="middle">博文 [管理]</td>
    </tr>
    <tr>
      <td height="443">
        <div id="showArticlesDiv" style="position:absolute; left: 263px; top: 53px; width: 416px; height: 423px;">
          <table width="100%" border="0" align="center">
           <tbody id="tabBody"></tbody>
          </table>

        </div>
      </td>
    </tr>
    <tr>
    <td>      
     <form name="form2" method="post" action="">
        <table width="90%" border="0" align="center">
          <tr>
            <td align="center">共<span id="totalPage"></span> 页&nbsp;第<span id="pageId"></span>页&nbsp;首页&nbsp;上一页&nbsp;下一页&nbsp;尾页&nbsp;跳至
              <input type="text" name="goto" size="3">
              页 <img src="images/pagego.gif"/></td>
          </tr>
        </table>
    </form> 
    </td>
    </tr>
</table>


PS:这里分页没有实现

  • 大小: 12.6 KB
  • 大小: 12.7 KB
   发表时间:2010-10-31  
一直纠结于,dwr还有必要吗?
0 请登录后投票
   发表时间:2010-10-31  
dwr 已经好几年没更新了,估计要破产
0 请登录后投票
   发表时间:2010-10-31  
现在项目里边基本都没用,以前倒是用过
0 请登录后投票
   发表时间:2010-11-01  
个人感觉在安全方面的配置还不是很灵活...
0 请登录后投票
   发表时间:2010-11-01   最后修改:2010-11-01
dwr除了配置麻烦一点,用起来作异步校验,直接插入数据还是挺不错的。不过我们开发项目现在基本上不用,因为如果你使用MVC的思想来开发,dwr可以跳过控制层进行操作。那以已个符合三层架构的思想。
小弟陋闻,请各位多多指教。
0 请登录后投票
   发表时间:2010-11-01  
用了几次,dwr对前后两端的入侵性都过强,放弃了,用jQuery的ajax加其他框架同样可以解决。
不过Joe Walker还是挺有想法的,对跨域攻击等等几个方面研究的挺深入。
项目版本到3.0rc1之后很久没动,更新确实挺慢
0 请登录后投票
   发表时间:2010-11-01  
不知道楼主有没有想过,你用dwr提交的ajax请求,怎么通过权限系统的过滤器呢?
0 请登录后投票
   发表时间:2010-11-01  
westlwt 写道
一直纠结于,dwr还有必要吗?


现在同感啦!
0 请登录后投票
   发表时间:2010-11-01  
fordybeach 写道
不知道楼主有没有想过,你用dwr提交的ajax请求,怎么通过权限系统的过滤器呢?


这个考虑过啊
直接略过,并没有通过权限系统的过滤器。
现在我也已经很少使用啦,在用Jquery的ajax
0 请登录后投票
论坛首页 海阔天空版

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