首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spring MVC,向前

Spring MVC,向前
EN

Stack Overflow用户
提问于 2010-06-08 21:50:20
回答 2查看 22.9K关注 0票数 17

两者之间有什么区别吗?

代码语言:javascript
复制
public class Controller1 extends AbstractController {
    @Override
    protected ModelAndView handleRequestInternal(HttpServletRequest request,
            HttpServletResponse response) throws Exception {
        return new AnotherController().handleRequest(request, response);
    }
}

代码语言:javascript
复制
@Controller
public class Controller1 {

    @RequestMapping ...
    public String handleRequest() {
        return "forward:/path_to_my_another_controller";
    }
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-06-09 04:27:32

它们很相似,但并不完全相同。

第二种方法将创建一个新的内部请求,并将其转发到第二个控制器,而第一种方法将重用相同的请求对象。

这是否重要取决于每个控制器对请求做了什么。

我发现使用直接方法调用将控制器链接在一起是Spring带注释的控制器更吸引人的方面之一,它可以产生比转发请求更自然的流。

与往常一样,您的里程数可能会有所不同。

票数 16
EN

Stack Overflow用户

发布于 2010-06-14 01:56:42

通过自己创建控制器,您将防止Spring向其中注入任何依赖项。这可能会导致您自创建的控制器无法正常工作。

如果您确实需要像这样链接控制器,我会向Spring应用程序上下文请求您想要的控制器实例,而不是使用new操作符创建一个。

票数 22
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2997866

复制
相关文章

相似问题

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