dwr 需要spring注入方法

1.當JSP頁面的Ajax調用業務層方法時,業務需要DAO層對象,而DAO層對象我們是通過spring來注入的,如果我們直接用DWR暴露給js的對象去調用業務的方法時,就會出現錯誤。因爲業務類DAO對象是空的。這時我們就要通過DWR整合的SPRING的形式來加載對象。
2、要用到SRPING的東西,就是必須加載SPRING的配置文件(applicationContext.xml),在這裏我們通過服務啓動時去加載,所以要配置修改web.xml文件。在原來的基礎上添加以下配置:

Java代碼 複製代碼 收藏代碼

  1.  <!--- 這個就是用來加載SPRING配置文件的---->   
  2.  <context-param>   
  3.         <param-name>contextConfigLocation</param-name>   
  4.         <param-value>   
  5.             /WEB-INF/classes/applicationContext.xml   
  6.         </param-value>   
  7. </context-param>   
  8. <listener>   
  9.     <listener-class>   
  10.           org.springframework.web.context.ContextLoaderListener   
  11.     </listener-class>   
  12. </listener>   
  13.   
  14. <!--- 這個是DWR本身的配置--->   
  15. <servlet>   
  16.     <servlet-name>dwr</servlet-name>   
  17.      <servlet-class>   
  18.             org.directwebremoting.servlet.DwrServlet   
  19.         </servlet-class>   
  20.         <init-param>   
  21.             <param-name>debug</param-name>   
  22.             <param-value>true</param-value>   
  23.         </init-param>   
  24. </servlet>   
  25.   
  26. <servlet-mapping>   
  27.     <servlet-name>dwr</servlet-name>   
  28.     <url-pattern>/dwr/*</url-pattern>   
  29. </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對象

 

Java代碼 複製代碼 收藏代碼

  1.    <bean id="bidbiz" class="com.byz.bizimpl.BidImpl">   
  2.     <property name="biddao">   
  3.        <ref local="BidDAO"/>   
  4.     </property>   
  5.     <property name="goodsdao">   
  6.         <ref local="GoodsDAO" />   
  7.     </property>   
  8.     <property name="userdao">   
  9.         <ref local="UsersDAO" />   
  10.     </property>   
  11. </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對象"/> 這個可以將對象接收到。

 

Java代碼 複製代碼 收藏代碼

  1. <?xml version="1.0" encoding="UTF-8"?>   
  2. <!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN" "http://getahead.org/dwr/dwr20.dtd">   
  3. <dwr>   
  4.     <allow>   
  5.         <create javascript="BidImpl" creator="spring"  
  6.             scope="application">   
  7.             <!-- <param name="class" value="com.byz.bizimpl.BidImpl" /> -->   
  8.             <!-- 將Spring中的對象給到參數 -->   
  9.             <param name="beanName" value="bidbiz" />    
  10.             <include method="add" />   
  11.         </create>   
  12.     </allow>   
  13.     <!-- 參數集合配置 -->   
  14.     <signatures>   
  15.         <![CDATA[    
  16.              import java.util.List;   
  17.              com.byz.bizimpl.BidImpl;   
  18.              BidImpl.add(List);   
  19.         ]]>   
  20.     </signatures>   
  21. </dwr>  
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章