在上篇转载的博客中,是DWR的入门教程。通过上篇博客,可以初步了解到,DWR的原理以及DWR的使用过程。
上篇博客中的,暴露的类是DWR,new实例化的。若是使用Spring容器中的实例化的类,如何操作呢?
其实很简单,具体的步骤如下:
在上篇博客中,具体的暴露类、jsp,都不用改动。
第一:既然使用spring,因此在web.xml中配置spring。
<?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>
第二:改动dwr.xml文件:
<?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>
第三:配置Spring核心配置文件:
<?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>
OK,到此就OK,很简单。
其中dwr.xml中参数beanName中的value值是与spring配置文件中的bean name 相同即可。
其中dwr.xml中的每一个类被调用的方法都需要create,其中create中的creator有多种类型,默认情况下new。
还可以是spring框架、struts、jsf、pageflow,有兴趣可以尝试下