锁定老帖子 主题:dwr的基本运用
精华帖 (0) :: 良好帖 (0) :: 灌水帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2010-10-29
最后修改:2010-11-02
一、在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> 页 第<span id="pageId"></span>页 首页 上一页 下一页 尾页 跳至 <input type="text" name="goto" size="3"> 页 <img src="images/pagego.gif"/></td> </tr> </table> </form> </td> </tr> </table> PS:这里分页没有实现 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2010-10-31
一直纠结于,dwr还有必要吗?
|
|
返回顶楼 | |
发表时间:2010-10-31
dwr 已经好几年没更新了,估计要破产
|
|
返回顶楼 | |
发表时间:2010-10-31
现在项目里边基本都没用,以前倒是用过
|
|
返回顶楼 | |
发表时间:2010-11-01
个人感觉在安全方面的配置还不是很灵活...
|
|
返回顶楼 | |
发表时间:2010-11-01
最后修改:2010-11-01
dwr除了配置麻烦一点,用起来作异步校验,直接插入数据还是挺不错的。不过我们开发项目现在基本上不用,因为如果你使用MVC的思想来开发,dwr可以跳过控制层进行操作。那以已个符合三层架构的思想。
小弟陋闻,请各位多多指教。 |
|
返回顶楼 | |
发表时间:2010-11-01
用了几次,dwr对前后两端的入侵性都过强,放弃了,用jQuery的ajax加其他框架同样可以解决。
不过Joe Walker还是挺有想法的,对跨域攻击等等几个方面研究的挺深入。 项目版本到3.0rc1之后很久没动,更新确实挺慢 |
|
返回顶楼 | |
发表时间:2010-11-01
不知道楼主有没有想过,你用dwr提交的ajax请求,怎么通过权限系统的过滤器呢?
|
|
返回顶楼 | |
发表时间:2010-11-01
westlwt 写道 一直纠结于,dwr还有必要吗?
现在同感啦! |
|
返回顶楼 | |
发表时间:2010-11-01
fordybeach 写道 不知道楼主有没有想过,你用dwr提交的ajax请求,怎么通过权限系统的过滤器呢?
这个考虑过啊 直接略过,并没有通过权限系统的过滤器。 现在我也已经很少使用啦,在用Jquery的ajax |
|
返回顶楼 | |