在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值(或者是注解形式的)