gpt4 book ai didi

spring - Spring MVC 中返回 ModelAndView 和返回 String 有什么区别?

转载 作者:IT老高 更新时间:2023-10-28 13:53:53 26 4
gpt4 key购买 nike

我想知道ModelAndView和String的区别。

@RequestMapping(value="/")
public ModelAndView mainPage() {
return new ModelAndView("home");
}

第二段代码是关于返回字符串的:

@RequestMapping(value="/")
public String mainPage() {
return "home";
}

最佳答案

你可以从一个 Controller 返回很多东西,Spring 会自动尝试从那里推断出要做什么。

当您返回 ModelAndView 时,需要从 Controller 传递的所有信息都嵌入其中。没有惊喜。

如果您返回一个字符串,它将假定这是要使用的 View 的名称。它将把它包装在一个 ModelAndView 对象中,字符串作为 View ,同时嵌入现有的模型。

Spring 在返回类型和参数类型上做了很多“魔法”。这使您可以以更直观的方式编写代码,即以下两个示例相同:

@RequestMapping(value="/")
public ModelAndView mainPage() {
Model m = new Model();
m.put("key", "value");
return new ModelAndView(m,"main");
}

@RequestMapping(value="/")
public String mainPage(Model m) {
m.put("key", "value");
return "main";
}

第二个变体不太冗长,更容易单独测试。传入的模型将是一个空模型(除非从其他 Controller 转发)。

关于spring - Spring MVC 中返回 ModelAndView 和返回 String 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25988442/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com