我有一個集成了DWR 3和Spring 3的Web應用程序。所有請求都由Spring的DispatcherServlet處理。一切正常。當我請求一個AJAX請求時,通過用@RemoteProxy註釋的後備DWR服務bean正確處理它。爲了返回一個響應,我的DWR服務bean返回一個包含@DataTransferObject POJO的HTML字符串,或者返回普通的POJO。DWR Spring Integration:是否可以將DWR請求轉發給Spring Controller?
我想要做的是在DWR服務bean中,我希望它將處理轉發給Spring @Controller bean。 AJAX請求仍將由DWR服務處理,但實際處理委託給Spring控制器bean。換句話說,DWR服務bean只是實際服務的服務外觀。這樣我就不會重複邏輯。
這可能嗎?
讓我進一步澄清。
在一個正常的非AJAX應用中,當用戶提交表單,這裏發生了什麼:
- 它轉發到 DispatcherServlet的
- 然後到@Controller的豆。
- 處理由@Service bean處理。
- 之後,控制器返回一個ModelAndView。
在DWR-AJAX應用中,當用戶提交表單,這裏發生了什麼:
- 它轉發到DispatcherServlet的還是
- 然後註釋 豆一@RemoteProxy。處理由 這個bean處理。這是DWR的服務 bean。
- 之後,這個偏遠的代理bean返回任何一個@DataTransferObject POJO或只是簡單的HTML字符串
基本上爲AJAX應用程序, 步驟2後,我希望它轉發 到@Controller豆使 一切仍然由 處理。
我嘗試了WebContextFactory.get()。forwardToString(...),但它沒有被處理,甚至沒有被轉發到任何@Controller註釋的bean。我猜測它沒有訪問Spring控制器? – chris 2010-11-14 08:54:18
下面是一個應該工作的解決方案,但事實並非如此。我猜這裏的人使用了一個沒有註釋的Spring Controller? http://forum.springsource.org/showthread.php?t=85101 – chris 2010-11-14 08:56:44
這裏有一個類似的問題,但這是問如何將請求從DWR轉發到Struts動作:http://markmail.org/message/he45oslbejuqieos#查詢:+頁面:1 + mid:7tpq3shrcw5i4aup +狀態:結果 – chris 2010-11-14 09:53:15