SSH框架中整合dwr時無法調用後臺方法的解決辦法

轉載自:https://blog.csdn.net/Unseenblade/article/details/53087414

在按照網上做的單獨dwr測試都可以成功,可是與SSH框架整合在一起的時候卻無法調用後臺的方法,在我徜徉網絡整個下午才摸索出了答案。

由於網上關於dwr資料也不少,所以我只說重點吧(我遇到的問題),首先說配置


1、web.xml

[html] view plain copy
  1. <pre name="code" class="html"><servlet>  
  2.     <servlet-name>dwr-invoker</servlet-name>  
  3.     <servlet-class>uk.ltd.getahead.dwr.DWRServlet</servlet-class>  
  4.     <init-param>  
  5.         <param-name>debug</param-name>  
  6.         <param-value>true</param-value>  
  7.     </init-param>  
  8.     <init-param>  
  9.         <param-name>crossDomainSessionSecurity</param-name>  
  10.         <param-value>false</param-value>  
  11.     </init-param>  
  12. </servlet>  
  13. <servlet-mapping>  
  14.     <servlet-name>dwr-invoker</servlet-name>  
  15.     <url-pattern>/dwr/*</url-pattern>  
  16. </servlet-mapping>  

特別注意crossDomainSessionSecurity這個參數要配置,沒有這個參數頁面接收不到返回結果(拒絕請求)。

2、dwr.xml

[html] view plain copy
  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 creator="spring" javascript="test">  
  6.       <param name="beanName" value="dwrTest"/>  
  7.     </create>  
  8.   </allow>  
  9. </dwr>  
由於我是用ssh框架,所以creator是“spring”,當然,value=“dwrTest”中的dwrTest也是需要spring注入的,我在測試類上用annotation註解了:@component(“dwrTest”),其他的我就不再贅述。


3.測試

然後當我在jsp頁面中引入兩個必備JavaScript:engine.js和util.js,在加上新建的test.js,當我訪問頁面時發現js調用的方法沒有反應,也就是說根本沒調用,而且我訪問

http://localhost:8000/projectName/dwr/  也沒有反應,說找不到路徑,經過我漫長的搜尋之路找到答案,原來是web.xml中struts2攔截器配置 /* 後,當輸入XXX/dwr時會被struts2捕獲,被當做某個action  所以就找不到路徑,

解決辦法:(1)在Struts2中配置常量<constant name="struts.action.excludePattern" value="/dwr.*"></constant>


此時再次訪問 http://localhost:8000/projectName/dwr/成功了會看到這樣的頁面:


點擊test進去,會看到:

稍微閱讀一下,你會明白:要用test,你要引用這三個js,他使用的是絕對路徑,是不是(2)和你引用的路徑不同?趕緊複製粘貼吧。

把js路徑改好再運行就OK了,困擾了我好久。。。如果幫到了您,就給我個贊吧,不枉我花費了一個下午。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章