首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在spring3控制器上返回"ModelAndView“和"String”哪个更好

在spring3控制器上返回"ModelAndView“和"String”哪个更好
EN

Stack Overflow用户
提问于 2011-08-24 20:36:50
回答 2查看 91.7K关注 0票数 116

返回ModelAndView的方法

代码语言:javascript
复制
@RequestMapping(value = "/list", method = RequestMethod.GET)
public ModelAndView list(
    @UserAuth UserAuth user, 
    ModelAndView mav) {

    if (!user.isAuthenticated()) {
        mav.setViewName("redirect:http://www.test.com/login.jsp");
        return mav;
    }

    mav.setViewName("list");
    mav.addObject("articles", listService.getLists());

    return mav;
}

返回字符串的方式

代码语言:javascript
复制
@RequestMapping(value = "/list", method = RequestMethod.GET)
public String list(
    @UserAuth UserAuth user, 
    Model model) {

    if (!user.isAuthenticated()) {
        return "redirect:http://www.test.com/login.jsp";
    }

    model.addAttribute("articles", listService.getLists());

    return "list";
}

它们的工作原理是一样的。哪种方法更好?有什么不同呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-08-24 20:42:17

没有更好的方法了。两者都是完全有效的。您选择使用哪一种方法取决于哪种方法更适合您的应用程序- Spring允许您以任何一种方式来实现。

从历史上看,这两种方法来自不同版本的Spring。在Spring2.0之前的版本中,ModelAndView方法是从控制器返回模型和视图信息的主要方式。现在您可以组合Model参数和String返回值,但旧方法仍然有效。

票数 130
EN

Stack Overflow用户

发布于 2015-03-29 12:39:03

我也想加我2美分。第二种方法更倾向于面向约定,即开发人员确实明确地提到了他的视图是什么,但其隐含的返回字符串是视图名称。所以更少的代码,可读性和标准性。比使用ModelAndView的旧方法要好得多

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

https://stackoverflow.com/questions/7175509

复制
相关文章

相似问题

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