在上篇转载的博客中,是DWR的入门教程。通过上篇博客,可以初步了解到,DWR的原理以及DWR的使用过程。
上篇博客中的,暴露的类是DWR,new实例化的。若是使用Spring容器中的实例化的类,如何操作呢?
其实很简单,具体的步骤如下:
在上篇博客中,具体的暴露类、jsp,都不用改动。
第一:既然使用spring,因此在web.xml中配置spring。
第二:改动dwr.xml文件:
- <?xml version="1.0" encoding="UTF-8"?>
- <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
- <servlet>
- <servlet-name>dwr</servlet-name>
- <servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
- <init-param>
- <param-name>debug</param-name>
- <param-value>true</param-value>
- </init-param>
- <init-param>
- <param-name>crossDomainSessionSecurity</param-name>
- <param-value>false</param-value>
- </init-param>
- </servlet>
- <servlet-mapping>
- <servlet-name>dwr</servlet-name>
- <url-pattern>/dwr/*</url-pattern>
- </servlet-mapping>
- <listener>
- <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
- </listener>
- <context-param>
- <param-name>contextConfigLocation</param-name>
- <param-value>/WEB-INF/applicationContext.xml</param-value>
- </context-param>
- </web-app>
第三:配置Spring核心配置文件:
- <?xml version="1.0" encoding="UTF-8"?>
- <!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN" "http://getahead.org/dwr/dwr20.dtd">
- <dwr>
- <allow>
- <!-- service用于前台js上 -->
- <create creator="spring" javascript="service">
- <param name="beanName" value="serviceManager"/>
- </create>
- </allow>
- </dwr>
OK,到此就OK,很简单。
- <?xml version="1.0" encoding="UTF-8"?>
- <beans
- xmlns="http://www.springframework.org/schema/beans"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
- <bean name="serviceManager" class="com.test.Service"/>
- </beans>
其中dwr.xml中参数beanName中的value值是与spring配置文件中的bean name 相同即可。
其中dwr.xml中的每一个类被调用的方法都需要create,其中create中的creator有多种类型,默认情况下new。
还可以是spring框架、struts、jsf、pageflow,有兴趣可以尝试下