1、DWR的综合应用,基于MVC架构的J2EE三层开发第18章,本章目标,理解DWR原理学会使用DWR开发项目,系统功能界面,在前面的例子中,后台java对象返回的仅是一个字符串,那么前台js可不可以接受其它类型的返回值呢?当然是可以,dwr中的js可以接收后台返回的xml,字符串(整型)和集合类型及java对象。本例中,主要示例js解析java方法返回的集合类型,并展示dwr.util工具包更多的用法。,系统功能界面,用户界面是userManger.html,初始界面如下:,系统功能界面,当用户在下拉框中选择一个地区时,系统功能界面,点击修改按钮,后台业务实现,UserInfo.lava,后台业
2、务实现,UserManager.java,后台业务实现,dwr.xml中加入如下配置,测试dwr,测试dwr,如果UserInfo类为非public,测试时将会看到如下错误:,前台DWR调用代码,前台DWR调用代码,关键的几个事件说明如下,前台DWR调用代码,dwr调用实现的js代码,/定义一个数组,用以缓存表中的用户信息var userCache = ;/填充用户区域下拉表-DWR调用function fillSelectUserArea()UserManger.getAreaMap(callBackFSU);/填充用户区域下拉表DWR调用的回调方法var callBackFSU=funct
3、ion(areaList)DWRUtil.removeAllOptions(selectUserArea);DWRUtil.addOptions(selectUserArea, areaList);/根据selectUserArea组件选择值调用填充表格的函数function displayselectUserArea(sua)alert(选中的值是: +sua.value);fillTable(sua.value);其余的见代码,集合类型的自动转换,dwr中可以自动将java的Map对象中的键和值转化为html seslect组件中的option,如下代码:,前台DWR调用代码,java对象与js对象的对接(java-js中的对象转换 ),前台DWR调用代码,java对象与js对象的对接(js到java中的对象转换 ),前台DWR调用代码,dwr中快捷的批赋值方法,总结,测试DWR是,涉及到dwr调用的java对象及其方法必须是public的java对象与js对象的对接, 直接被转换为js中的对象,其属性名值与生成的java对象是一致的js与java中对应对应的属性名必须一致,作业,使用DWR框架重构自动补全程序。,