﻿<?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-Understanding Java-随笔分类-DWR</title><link>http://www.blogjava.net/botson/category/33790.html</link><description /><language>zh-cn</language><lastBuildDate>Fri, 15 Aug 2008 02:41:01 GMT</lastBuildDate><pubDate>Fri, 15 Aug 2008 02:41:01 GMT</pubDate><ttl>60</ttl><item><title>【转】DWR中使用HttpSession等API</title><link>http://www.blogjava.net/botson/archive/2008/08/15/222151.html</link><dc:creator>Jam Chan</dc:creator><author>Jam Chan</author><pubDate>Fri, 15 Aug 2008 01:34:00 GMT</pubDate><guid>http://www.blogjava.net/botson/archive/2008/08/15/222151.html</guid><wfw:comment>http://www.blogjava.net/botson/comments/222151.html</wfw:comment><comments>http://www.blogjava.net/botson/archive/2008/08/15/222151.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/botson/comments/commentRss/222151.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/botson/services/trackbacks/222151.html</trackback:ping><description><![CDATA[当前的项目中．用到了DWR.以为不用struts没什么关系．结果spring+dwr让我在session获取这块碰到了问题．
<br />
如：系统登录页面中我要进行验证码验证．一般生成的验证码是放在session中的．我点登录的时候．用的是dwr．所以是js直接调用后台的方法．
<br />
那么后台的方法只是一个普通的java类．是不存在什么request,session的．所以就不到session中的值．当然你要是用spirng MVC的话，可能可以．（我没用过，不好说）．
<br />
经查资料，原来ＤＷＲ本身中就可以传session.只不过是隐藏的．
<br />
<br />
那么方法就是通过DWR的ＡＰＩ．（网上说很多人不推荐，不知为什么）
<br />
<br />
具体应用：
<br />
HttpServletRequest,HttpServletResponse,HttpSession,ServletContext,ServletConfig.
<br />
<br />
Java类中定义方法: save(String name, HttpSession session)
<br />
<br />
Javascript调用: Service.save(jsID,jsName,callBack)
<br />
<br />
注意,这里不需要传入session这个参数,DWR会自动传入,在Java端可以直接使用.
<br />
<br />
这样的话，你就可以在后台的save方法中得到sesion了
<img src ="http://www.blogjava.net/botson/aggbug/222151.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/botson/" target="_blank">Jam Chan</a> 2008-08-15 09:34 <a href="http://www.blogjava.net/botson/archive/2008/08/15/222151.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>DWR的DWRUtil.addRows方法的使用</title><link>http://www.blogjava.net/botson/archive/2008/04/23/194952.html</link><dc:creator>Jam Chan</dc:creator><author>Jam Chan</author><pubDate>Wed, 23 Apr 2008 02:05:00 GMT</pubDate><guid>http://www.blogjava.net/botson/archive/2008/04/23/194952.html</guid><wfw:comment>http://www.blogjava.net/botson/comments/194952.html</wfw:comment><comments>http://www.blogjava.net/botson/archive/2008/04/23/194952.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/botson/comments/commentRss/194952.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/botson/services/trackbacks/194952.html</trackback:ping><description><![CDATA[最近想通过DWR做查询，虽然可以结合ext使用，但是使用太多框架会增加客户端的负荷，因此用到了DWRUtil.addRows方法。<br />
如果想在每行记录的最后添加&#8220;编辑&#8221;或&#8220;删除&#8221;的超级连接，可以通过document.createElement()来处理，请看以下的例子。<br />
<br />
现在需要把封装了这个JavaBean数据的 java.util.List对象 传到客户端<br />
<div style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; background-color: rgb(238, 238, 238); font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: rgb(0, 0, 255);">public</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">class</span><span style="color: rgb(0, 0, 0);">&nbsp;Fund&nbsp;</span><span style="color: rgb(0, 0, 255);">implements</span><span style="color: rgb(0, 0, 0);">&nbsp;java.io.Serializable&nbsp;{<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 128, 0);">//</span><span style="color: rgb(0, 128, 0);">&nbsp;Fields</span><span style="color: rgb(0, 128, 0);"><br />
</span><span style="color: rgb(0, 0, 0);"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">private</span><span style="color: rgb(0, 0, 0);">&nbsp;Long&nbsp;fundNo;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">private</span><span style="color: rgb(0, 0, 0);">&nbsp;String&nbsp;fundName;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">private</span><span style="color: rgb(0, 0, 0);">&nbsp;Float&nbsp;price;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">private</span><span style="color: rgb(0, 0, 0);">&nbsp;String&nbsp;description;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">private</span><span style="color: rgb(0, 0, 0);">&nbsp;String&nbsp;status;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">private</span><span style="color: rgb(0, 0, 0);">&nbsp;Date&nbsp;createdDate;<br />
&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; <span style="color: rgb(23, 152, 55);"><span style="color: rgb(23, 152, 55);"><span style="color: red;"><span style="color: rgb(45, 158, 29);">//Getter &amp; Setter</span></span></span></span><br />
}<br />
</span></div>
<br />
之前如何调用就省略了，想了解DWR的详细信息可以到官方网站<a target="_blank" href="http://getahead.org/dwr">http://getahead.org/dwr</a>学习<br />
<br />
现在，我们看看客户端的回调函数<br />
<div style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; background-color: rgb(238, 238, 238); font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: rgb(0, 0, 255);">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; function</span><span style="color: rgb(0, 0, 0);">&nbsp;callBack(data){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DWRUtil.removeAllRows(</span><span style="color: rgb(0, 0, 0);">"tbodyId</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">); <span style="color: rgb(45, 158, 29);">// "tbodyId"是需要嵌入行的元素ID</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DWRUtil.addRows(</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">tbodyId</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">,&nbsp;data,&nbsp;cellFunctions);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">var</span><span style="color: rgb(0, 0, 0);">&nbsp;cellFunctions&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;[&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">function</span><span style="color: rgb(0, 0, 0);">(item)&nbsp;{&nbsp;</span><span style="color: rgb(0, 0, 255);">return</span><span style="color: rgb(0, 0, 0);">&nbsp;item.fundNo;&nbsp;},&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">function</span><span style="color: rgb(0, 0, 0);">(item)&nbsp;{&nbsp;</span><span style="color: rgb(0, 0, 255);">return</span><span style="color: rgb(0, 0, 0);">&nbsp;item.fundName;&nbsp;},&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">function</span><span style="color: rgb(0, 0, 0);">(item)&nbsp;{&nbsp;</span><span style="color: rgb(0, 0, 255);">return</span><span style="color: rgb(0, 0, 0);">&nbsp;item.price;&nbsp;},&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">function</span><span style="color: rgb(0, 0, 0);">(item)&nbsp;{&nbsp;</span><span style="color: rgb(0, 0, 255);">return</span><span style="color: rgb(0, 0, 0);">&nbsp;item.description;&nbsp;},&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">function</span><span style="color: rgb(0, 0, 0);">(item)&nbsp;{&nbsp;</span><span style="color: rgb(0, 0, 255);">return</span><span style="color: rgb(0, 0, 0);">&nbsp;item.status</span><span style="color: rgb(0, 0, 0);">==</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">1</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">?</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">正常</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">:</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">冻结</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">;&nbsp;},&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">function</span><span style="color: rgb(0, 0, 0);">(item)&nbsp;{&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">var</span><span style="color: rgb(0, 0, 0);">&nbsp;editLink&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;document.createElement(</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">a</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;editLink.setAttribute(</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">href</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">,</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">edit.do?id=</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">+</span><span style="color: rgb(0, 0, 0);">item.fundNo);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;editLink.innerHTML</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">"</span>编辑<span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">return</span><span style="color: rgb(0, 0, 0);">&nbsp;editLink;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ];</span></div>
<br />
这样在每行的最后一行就会增加&#8220;编辑&#8221;的超级连接了。编辑的具体工作想发给哪个后台类处理，修改一下href属性吧。<br />
<br />
<br />
<img src ="http://www.blogjava.net/botson/aggbug/194952.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/botson/" target="_blank">Jam Chan</a> 2008-04-23 10:05 <a href="http://www.blogjava.net/botson/archive/2008/04/23/194952.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>