在spring和dwr集成的项目中,往往需要再dwr的service中使用spring声明的bean,这是需要修改dwr.xml配置文件。
1、普通的dwr.xml配置文件如下:
- <?xml version="1.0" encoding="UTF-8"?>
- <!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 3.0//EN" "http://getahead.org/dwr/dwr30.dtd">
- <dwr>
- <allow>
- <!-- <filter class="org.directwebremoting.filter.AuditLogAjaxFilter"></filter>-->
- <create javascript="SdenRules" creator="new" scope="application">
- <param name="class" value="com.ifeng.iis.common.dwr.SdenRules"></param>
- </create>
- </allow>
- </dwr>
这时SednRules 的bean是使用new来声明的,所以这种方式的service无法调用spring声明的bean。
2、使用spring声明的dwr.xml
- <?xml version="1.0" encoding="UTF-8"?>
- <!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 3.0//EN" "http://getahead.org/dwr/dwr30.dtd">
- <dwr>
- <allow>
- <!-- <filter class="org.directwebremoting.filter.AuditLogAjaxFilter"></filter>-->
- <create javascript="SdenRules" creator="spring" scope="application">
- <param name="beanName" value="sdenRules"></param>
- </create>
- </allow>
- </dwr>
creator属性的值可以是new,struts,spring......因为此处是整合spring来做的,所以设置成“spring”;
javascript="DWRUser" 表示实例转换成javascript语言后以DWRUser命名,前台页面可以通过代码(<script type='text/javascript' src='../../dwr/interface/DWRUser.js'></script>)来调用;
param元素的name属性值可以是class,beanName等,此处用beanName,value得值是定义在applicationContext.xml中某个bean的id值(或者是注解形式的)