SSH、DWR、JQuery强强联手
来源:百度文库 编辑:神马文学网 时间:2024/07/08 10:28:53
(--- 来自
eMavaj的小窝
(老的 已停止跟新了 ) http://emavaj.blog.163.com/
(新博客)http://emavaj.javaeye.com/
)这回的主角是DWR !
嘿嘿~
基本的东西我就不说了,入门例子到处都是,我讲的是一个DWR和Hibernate一起的时候
一个要人命的错误!
我就贴个代码吧:
我得DWR是最近版3.x ,就一个包dwr.jar
web.xml配置
...
...
initApplicationScopeCreatorsAtStartup
上面的配置可能多出了几个属性网上的教程没有,没关系,这个时候要不要都没问题
(反ajax的时候,上面几个都要加上,而且还有加activeReverseAjaxEnabled )
DWR配置
//这里可能你没见过,converter="hibernate3"
imp
]]>
这个配置(signatures是说转换类型的时候提示Java类型)就是关键,
通常SSH整合之后,很多想用DWR,是为了配合Hibernate的查询取得一定数据
但是一般的入门都只有 converter="bean" 这样只能让DWR转换普通Bean
而一旦bean被Hiberante管理之后,应该是说在Hibernate查询出来,
也就是在session状态的bean是不一样的,如果只用converter="bean"来转换
会出现以下异常:
No converter found for XXXX
解决方法就是,把转换器converter换成 hibernate3 (我感觉应该是dwr 3.x 才有这个)
就不会出现那个异常了。
(哦,忘了说了,很多人会把converter和match属性搞错...这个更郁闷的)
在前台,除了加入必要的js之外,
写函数的时候,也是搞死很多人的
比如说:(TestDWR方法是服务器公开方法,js名为 Tester ,返回一个user)
var user = Tester.TestDWR();
很多人因为Java习惯,就这样写,结果搞死去都是 undefined
这个是异步方法,这样写如果对,那不成了同步了?
正确的是使用回调函数!(里面的da
Tester.TestDWR(function(da
// do some thing;
});
如果有参数:
Tester.TestDWR(xxxxx,xxxxxx,xxxx,function(da
//do somthing;
});
说了这么久,jquery还没出场...
其实我非常不喜欢DWR那个 uitl.js
功能相对jquery来说,非常逊色...
所以我的项目都没有加入DWR的 uitl.js ,用jquery来取代
(别一起加,$()这个函数会冲突的)
使得页面的操作更强悍!
哎,我也郁闷了超久...
写给喜欢SSH、jquery和DWR的人