我有一个集成了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