1.當JSP頁面的Ajax調用業務層方法時,業務需要DAO層對象,而DAO層對象我們是通過spring來注入的,如果我們直接用DWR暴露給js的對象去調用業務的方法時,就會出現錯誤。因爲業務類DAO對象是空的。這時我們就要通過DWR整合的SPRING的形式來加載對象。
2、要用到SRPING的東西,就是必須加載SPRING的配置文件(applicationContext.xml),在這裏我們通過服務啓動時去加載,所以要配置修改web.xml文件。在原來的基礎上添加以下配置:
- <!--- 這個就是用來加載SPRING配置文件的---->
- <context-param>
- <param-name>contextConfigLocation</param-name>
- <param-value>
- /WEB-INF/classes/applicationContext.xml
- </param-value>
- </context-param>
- <listener>
- <listener-class>
- org.springframework.web.context.ContextLoaderListener
- </listener-class>
- </listener>
- <!--- 這個是DWR本身的配置--->
- <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>
- </servlet>
- <servlet-mapping>
- <servlet-name>dwr</servlet-name>
- <url-pattern>/dwr/*</url-pattern>
- </servlet-mapping>
<!--- 這個就是用來加載SPRING配置文件的---->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/classes/applicationContext.xml
</param-value>
</context-param>
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
<!--- 這個是DWR本身的配置--->
<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>
</servlet>
<servlet-mapping>
<servlet-name>dwr</servlet-name>
<url-pattern>/dwr/*</url-pattern>
</servlet-mapping>
3、SPRING 的配置不變,一樣給業務類注入DAO對象
- <bean id="bidbiz" class="com.byz.bizimpl.BidImpl">
- <property name="biddao">
- <ref local="BidDAO"/>
- </property>
- <property name="goodsdao">
- <ref local="GoodsDAO" />
- </property>
- <property name="userdao">
- <ref local="UsersDAO" />
- </property>
- </bean>
<bean id="bidbiz" class="com.byz.bizimpl.BidImpl">
<property name="biddao">
<ref local="BidDAO"/>
</property>
<property name="goodsdao">
<ref local="GoodsDAO" />
</property>
<property name="userdao">
<ref local="UsersDAO" />
</property>
</bean>
4、DWR配置文件配置,這時我們需要將原先的creator="new" DWR去實例對象的,現在要改爲creator="spring" 由spring注入進來。 Dwr這有個參數 <param name="beanName" value="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>
- <create javascript="BidImpl" creator="spring"
- scope="application">
- <!-- <param name="class" value="com.byz.bizimpl.BidImpl" /> -->
- <!-- 將Spring中的對象給到參數 -->
- <param name="beanName" value="bidbiz" />
- <include method="add" />
- </create>
- </allow>
- <!-- 參數集合配置 -->
- <signatures>
- <![CDATA[
- import java.util.List;
- com.byz.bizimpl.BidImpl;
- BidImpl.add(List);
- ]]>
- </signatures>
- </dwr>