﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-◎ヤ撧吥菔瀭o┊。&#x7;``。-随笔分类-AJAX</title><link>http://www.blogjava.net/hllwuxin/category/25991.html</link><description>刪除昨天啲煩惱.﹖選擇今天啲快樂.﹖設置明天啲幸福.﹖ </description><language>zh-cn</language><lastBuildDate>Thu, 20 Sep 2007 05:27:34 GMT</lastBuildDate><pubDate>Thu, 20 Sep 2007 05:27:34 GMT</pubDate><ttl>60</ttl><item><title>DWR+SPRING整合</title><link>http://www.blogjava.net/hllwuxin/archive/2007/09/19/146435.html</link><dc:creator>優雅Ｄě頽廢</dc:creator><author>優雅Ｄě頽廢</author><pubDate>Wed, 19 Sep 2007 05:20:00 GMT</pubDate><guid>http://www.blogjava.net/hllwuxin/archive/2007/09/19/146435.html</guid><wfw:comment>http://www.blogjava.net/hllwuxin/comments/146435.html</wfw:comment><comments>http://www.blogjava.net/hllwuxin/archive/2007/09/19/146435.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hllwuxin/comments/commentRss/146435.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hllwuxin/services/trackbacks/146435.html</trackback:ping><description><![CDATA[<p style="text-indent: 2em">本文以一个DWR+SPRING的实例来说明DWR的使用 </p>
<p style="text-indent: 2em">1、将dwr.jar放到应用的/WEB-INF/lib目录下 </p>
<p style="text-indent: 2em">2、配置web.xml,增加如下代码: </p>
<p style="text-indent: 2em">代码</p>
<p style="text-indent: 2em"></p>
<p style="text-indent: 2em"></p>
<ol>
    <li>&lt;!--初始化WebApplicationContext--&gt;&nbsp;&nbsp;</li>
    <li>&nbsp;&lt;context-param&gt;&nbsp;&nbsp;</li>
    <li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;param-name&gt;contextConfigLocation&lt;/param-name&gt;&nbsp;&nbsp;</li>
    <li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;param-value&gt;/WEB-INF/applicationContext.xml,/WEB-INF/action-servlet.xml&lt;/param-value&gt;&nbsp;&nbsp;</li>
    <li>&nbsp;&lt;/context-param&gt;&nbsp;&nbsp;</li>
    <li>&nbsp;&lt;listener&gt;&nbsp;&nbsp;</li>
    <li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;listener-class&gt;&nbsp;&nbsp;</li>
    <li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;org.springframework.web.context.ContextLoaderListener &nbsp;&nbsp;</li>
    <li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/listener-class&gt;&nbsp;&nbsp;</li>
    <li>&nbsp;&lt;/listener&gt;&nbsp;&nbsp;</li>
    <li>&lt;!--配置DWR拦截器--&gt;&nbsp;&nbsp;</li>
    <li>&nbsp;&lt;servlet&gt;&nbsp;&nbsp;</li>
    <li>&nbsp;&nbsp;&lt;servlet-name&gt;dwr-invoker&lt;/servlet-name&gt;&nbsp;&nbsp;</li>
    <li>&nbsp;&nbsp;&lt;servlet-class&gt;uk.ltd.getahead.dwr.DWRServlet&lt;/servlet-class&gt;&nbsp;&nbsp;</li>
    <li>&nbsp;&nbsp;&lt;init-param&gt;&nbsp;&nbsp;</li>
    <li>&nbsp;&nbsp;&nbsp;&lt;param-name&gt;debug&lt;/param-name&gt;&nbsp;&nbsp;</li>
    <li>&nbsp;&nbsp;&nbsp;&lt;param-value&gt;true&lt;/param-value&gt;&nbsp;&nbsp;</li>
    <li>&nbsp;&nbsp;&lt;/init-param&gt;&nbsp;&nbsp;</li>
    <li>&nbsp;&lt;/servlet&gt;&nbsp;&nbsp;</li>
    <li>&nbsp;&lt;servlet-mapping&gt;&nbsp;&nbsp;</li>
    <li>&nbsp;&nbsp;&lt;servlet-name&gt;dwr-invoker&lt;/servlet-name&gt;&nbsp;&nbsp;</li>
    <li>&nbsp;&nbsp;&lt;url-pattern&gt;/dwr/*&lt;/url-pattern&gt;&nbsp;&nbsp;</li>
    <li>&nbsp;&lt;/servlet-mapping&gt;&nbsp;&nbsp;</li>
</ol>
<p>&nbsp;</p>
<p style="text-indent: 2em">3、增中dwr.xml文件 </p>
<p style="text-indent: 2em">文件内容： </p>
<p style="text-indent: 2em">代码</p>
<p style="text-indent: 2em"></p>
<p style="text-indent: 2em"></p>
<ol>
    <li>&lt;?xml&nbsp;version="1.0"&nbsp;encoding="UTF-8"?&gt;&nbsp;&nbsp;</li>
    <li>&lt;!DOCTYPE&nbsp;dwr&nbsp;PUBLIC&nbsp;"-//GetAhead&nbsp;Limited//DTD&nbsp;Direct&nbsp;Web&nbsp;Remoting&nbsp;1.0//EN"&nbsp;"http://www.getahead.ltd.uk/dwr/dwr10.dtd"&gt;&nbsp;&nbsp;</li>
    <li>&lt;dwr&gt;&nbsp;&nbsp;</li>
    <li>&nbsp;&lt;allow&gt;&nbsp;&nbsp;</li>
    <li>&nbsp;&nbsp;&lt;create&nbsp;creator="spring"&nbsp;javascript="DWRUser"&gt;&nbsp;&nbsp;</li>
    <li>&nbsp;&nbsp;&nbsp;&lt;param&nbsp;name="beanName"&nbsp;value="DWRUser"/&gt;&nbsp;&nbsp;</li>
    <li>&nbsp;&nbsp;&lt;/create&gt;&nbsp;&nbsp;</li>
    <li>&nbsp;&lt;/allow&gt;&nbsp;&nbsp;</li>
    <li>&lt;/dwr&gt;&nbsp;&nbsp;</li>
</ol>
<p>&nbsp;</p>
<p style="text-indent: 2em">creator属性的值可以是new,struts,spring......因为此处是整合spring来做的，所以设置成&#8220;spring&#8221;，javascript="DWRUser" 表示实例转换成javascript语言后以DWRUser命名，前台页面可以通过代码（&lt;script type='text/javascript' src='../../dwr/interface/DWRUser.js'&gt;&lt;/script&gt;）来调用。param元素的name属性值可以是class,beanName等，此处用beanName,value得值是定义在applicationContext.xml中某个bean的id值。 </p>
<p style="text-indent: 2em">4、创建一个实体bean供DWR转换成js </p>
<p style="text-indent: 2em">代码</p>
<p style="text-indent: 2em"></p>
<p style="text-indent: 2em"></p>
<ol>
    <li>package&nbsp;com.note.dwr; &nbsp;&nbsp;</li>
    <li>import&nbsp;com.note.bussies.service.IUserService; &nbsp;&nbsp;</li>
    <li>public&nbsp;class&nbsp;User&nbsp;{ &nbsp;&nbsp;</li>
    <li>&nbsp;private&nbsp;IUserService&nbsp;ius; &nbsp;&nbsp;</li>
    <li>&nbsp; &nbsp;&nbsp;</li>
    <li>&nbsp;public&nbsp;IUserService&nbsp;getIus()&nbsp;{ &nbsp;&nbsp;</li>
    <li>&nbsp;&nbsp;return&nbsp;ius; &nbsp;&nbsp;</li>
    <li>&nbsp;} &nbsp;&nbsp;</li>
    <li>&nbsp;public&nbsp;void&nbsp;setIus(IUserService&nbsp;ius)&nbsp;{ &nbsp;&nbsp;</li>
    <li>&nbsp;&nbsp;this.ius&nbsp;=&nbsp;ius; &nbsp;&nbsp;</li>
    <li>&nbsp;} &nbsp;&nbsp;</li>
    <li>&nbsp;public&nbsp;User(){ &nbsp;&nbsp;</li>
    <li>&nbsp;&nbsp; &nbsp;&nbsp;</li>
    <li>&nbsp;} &nbsp;&nbsp;</li>
    <li>&nbsp;public&nbsp;boolean&nbsp;isExist(String&nbsp;username)&nbsp;{ &nbsp;&nbsp;</li>
    <li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Users&nbsp;user&nbsp;=&nbsp;this.ius.getUserByName(username); &nbsp;&nbsp;</li>
    <li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;(null&nbsp;==&nbsp;user)&nbsp;?&nbsp;false&nbsp;:&nbsp;true; &nbsp;&nbsp;</li>
    <li>&nbsp;} &nbsp;&nbsp;</li>
    <li>}&nbsp;&nbsp;</li>
</ol>
<p>&nbsp;</p>
<p style="text-indent: 2em">5、在applicationContext.xml中配置第4步写的bean </p>
<p style="text-indent: 2em">代码</p>
<p style="text-indent: 2em"></p>
<p style="text-indent: 2em"></p>
<ol>
    <li>...... &nbsp;&nbsp;</li>
    <li>&nbsp;&lt;bean&nbsp;id="DWRUser"&nbsp;class="com.note.dwr.User"&gt;&nbsp;&nbsp;</li>
    <li>&nbsp;&nbsp;&lt;property&nbsp;name="ius"&gt;&nbsp;&nbsp;</li>
    <li>&nbsp;&nbsp;&nbsp;&lt;ref&nbsp;bean="UserService"&nbsp;/&gt;&nbsp;&nbsp;</li>
    <li>&nbsp;&nbsp;&lt;/property&gt;&nbsp;&nbsp;</li>
    <li>&nbsp;&lt;/bean&gt;&nbsp;&nbsp;</li>
    <li>......&nbsp;&nbsp;</li>
</ol>
<p>&nbsp;</p>
<p style="text-indent: 2em">6、在视图页面中调用 </p>
<p style="text-indent: 2em">先导入以下文，每个文件的功能这里不再详述 </p>
<p style="text-indent: 2em">代码</p>
<p style="text-indent: 2em"></p>
<p style="text-indent: 2em"></p>
<ol>
    <li>&lt;script&nbsp;type='text/javascript'&nbsp;src='../../dwr/interface/DWRUser.js'&gt;&lt;/script&gt;&nbsp;&nbsp;</li>
    <li>&lt;script&nbsp;type='text/javascript'&nbsp;src='../../dwr/engine.js'&gt;&lt;/script&gt;&nbsp;&nbsp;</li>
    <li>&lt;script&nbsp;type='text/javascript'&nbsp;src='../../dwr/util.js'&gt;&lt;/script&gt;&nbsp;&nbsp;</li>
</ol>
<p>&nbsp;</p>
<p style="text-indent: 2em">因为我的视图文件是放在/view/user/下，所以这里用了../../返回到根 </p>
<p style="text-indent: 2em">具体调用： </p>
<p style="text-indent: 2em">代码</p>
<p style="text-indent: 2em"></p>
<p style="text-indent: 2em"></p>
<ol>
    <li>&lt;script&nbsp;type='text/javascript'&gt;&nbsp;&nbsp;</li>
    <li>&nbsp;function&nbsp;regUserChked(){ &nbsp;&nbsp;</li>
    <li>&nbsp;&nbsp;var&nbsp;username=$("username").value; &nbsp;&nbsp;</li>
    <li>&nbsp;&nbsp;DWRUser.isExist(username,showData);//showData回调函数 &nbsp;&nbsp;</li>
    <li>&nbsp;} &nbsp;&nbsp;</li>
    <li>&nbsp;function&nbsp;showData(data){ &nbsp;&nbsp;</li>
    <li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(data){ &nbsp;&nbsp;</li>
    <li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DWRUtil.setValue("userMsg","该用户名已经被注册，请更换您的用户名！"); &nbsp;&nbsp;</li>
    <li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}else{ &nbsp;&nbsp;</li>
    <li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DWRUtil.setValue("userMsg","恭喜您，该用户名尚未被注册！");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</li>
    <li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;</li>
    <li>&nbsp;} &nbsp;&nbsp;</li>
    <li>&lt;/script&gt;&nbsp;&nbsp;</li>
    <li>input&nbsp;type="text"&nbsp;name="username"&nbsp;value=""&nbsp;onblur="regUserChked()"&nbsp;/&gt;&lt;div&nbsp;id="userMsg"&gt;&lt;/div&gt;&nbsp;&nbsp;</li>
</ol>
<img src ="http://www.blogjava.net/hllwuxin/aggbug/146435.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hllwuxin/" target="_blank">優雅Ｄě頽廢</a> 2007-09-19 13:20 <a href="http://www.blogjava.net/hllwuxin/archive/2007/09/19/146435.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>