DWR Spring集成:是否可以将DWR请求转发给Spring控制器?
我有一个集成了DWR3和Spring3的web应用程序。所有请求都由Spring的DispatcherServlet处理。一切正常。当我请求一个AJAX请求时,它由带有@RemoteProxy注释的支持DWR服务bean正确处理。为了返回响应,我的DWR服务bean要么返回包含@DataTransferObject POJO的HTML字符串,要么仅返回普通POJO 我要做的是在DWR服务bean中,我希望它将处理转发给Spring@Controller bean。AJAX请求仍将由DWR服务处理,但真正的处理委托给Spring控制器bean。换句话说,DWR服务bean只是实际服务的一个服务门面。这样我就不会重复逻辑 这可能吗 让我进一步澄清 在普通的非AJAX应用程序中,当用户提交表单时,会发生以下情况:DWR Spring集成:是否可以将DWR请求转发给Spring控制器?,spring,controller,request,dwr,forward,Spring,Controller,Request,Dwr,Forward,我有一个集成了DWR3和Spring3的web应用程序。所有请求都由Spring的DispatcherServlet处理。一切正常。当我请求一个AJAX请求时,它由带有@RemoteProxy注释的支持DWR服务bean正确处理。为了返回响应,我的DWR服务bean要么返回包含@DataTransferObject POJO的HTML字符串,要么仅返回普通POJO 我要做的是在DWR服务bean中,我希望它将处理转发给Spring@Controller bean。AJAX请求仍将由DWR服务处理
Spring。我对在这种情况下使用注释知之甚少。使用声明式方法,您可以执行以下操作 在SpringXML中(注意fileOperationService是Springbean) 您的DWR.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 1.0//EN" "http://www.getahead.ltd.uk/dwr/dwr10.dtd">
<dwr>
<allow>
<create creator="spring" javascript="BookRequestAjax">
<param name="beanName" value="BookRequestAjax" />
</create>
</allow>
</dwr>
简短的回答是否定的
DWR请求中没有spring控制器的位置。DWR非常支持远程处理SpringBean,但控制器对这个等式没有什么价值
也就是说,我没有理由认为Spring3.0风格的带注释的控制器不能用作公开的DWRBean。限制是返回类型不是
ModelAndView
,而是您的模型对象本身。我尝试了WebContextFactory.get().forwardToString(…),但它没有被处理,甚至没有被转发到任何@Controller注释bean。我猜它无法访问Spring控制器?这里有一个解决方案应该可以工作,但它不能。我猜这家伙在用一个没有注释的Spring控制器?这里有一个类似的问题,但这个问题是问如何将请求从DWR转发到Struts操作:这里是DWR的官方示例,但这个示例没有使用Spring控制器。只是一个普通的servlet,我们有一个类似的场景,我们希望将DWR请求重定向到Spring控制器。我想我需要重申一下这个设计。经过几周的探索,我真的看不出将DWR请求转发给Spring控制器有什么价值
public class BookRequestAjax {
FileOperationService fileOperationService;
public void deleteFile(String fileName){
try{
fileOperationService.deleteFile(fileName);
}catch(Exception e){
e.printStackTrace();
}
}
public void setFileOperationService(FileOperationService fileOperationService) {
this.fileOperationService = fileOperationService;
}
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 1.0//EN" "http://www.getahead.ltd.uk/dwr/dwr10.dtd">
<dwr>
<allow>
<create creator="spring" javascript="BookRequestAjax">
<param name="beanName" value="BookRequestAjax" />
</create>
</allow>
</dwr>