首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >DWR Spring集成:是否可以将DWR请求转发给Spring控制器?

DWR Spring集成:是否可以将DWR请求转发给Spring控制器?
EN

Stack Overflow用户
提问于 2010-11-14 08:39:48
回答 2查看 1.6K关注 0票数 2

我有一个集成DWR 3和Spring 3的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应用程序中,当用户提交表单时,会发生以下情况:

DispatcherServlet

  • Then将
  1. 转发给@Controller注释的bean。
  2. 然后由@Service处理。
  3. 之后,控制器返回ModelAndView.

在DWR应用程序中,当用户提交表单时,会发生以下情况:

  1. ,它被转发到DispatcherServlet,仍然是
  2. ,然后转发到一个@RemoteProxy注释bean。该处理由此bean处理。这是DWR的服务bean.
  3. Afterwards,这个远程代理bean返回@DataTransferObject POJO或普通HTML字符串

基本上,对于AJAX应用程序,在第2步之后,我希望它转发到@Controller bean,以便所有东西都由Spring处理。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-12-24 11:25:05

简短的回答是否定的。

在DWR请求中没有弹簧控制器的位置。DWR对远程处理spring有很大的支持,但是控制器可以给这个方程带来的价值很少。

尽管如此,我没有理由认为Spring3.0风格的带注释的控制器不能用作公开的DWR。限制是返回类型将不是ModelAndView,而是您的模型对象--它是self。

票数 2
EN

Stack Overflow用户

发布于 2010-12-24 10:05:02

在这种情况下,我不太知道如何使用注释。使用声明式方法,您可以执行以下操作。

在spring中(注意,fileOperationService是spring )

代码语言:javascript
运行
复制
    <bean name="BookRequestAjax" class="com.bookie.struts.BookRequestAjax">
        <property name="fileOperationService" ref="fileOperationService"/>
    </bean>

你的豆子

代码语言:javascript
运行
复制
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;
    }

}

你的DWR.xml

代码语言:javascript
运行
复制
<?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>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4176776

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档