我在Spring MVC中没有太多经验,并且我对有以下了解: Controller 方法可以返回的有效返回类型是什么。

因此,我知道用户会生成一个 HttpRequest ,该请求由 DispatcherServlet 接收和处理,并将此请求分派(dispatch)到特定的 Controller 类。

Controller 类是这样的:

@Controller
public class AccountController {

    @RequestMapping("/showAccount")
    public String show(@RequestParam("entityId") long id, Model model) {
        ...
    }

    .......................................
    .......................................
    .......................................
}

因此,我知道每种方法都处理一个特定的请求,并且已处理的请求由 @RequestMapping 批注指定。

我也知道该方法返回一个字符串对象,它是逻辑 View 名称(然后由 View 解析器解析以呈现 View )

因此,在此阶段,我认为 Controller 类的方法仅返回字符串对象。但是我不确定。也许像这样的方法还可以返回某些不同类型的对象?

最佳答案

Handler方法有很多返回类型可用,这些返回类型由 Controller 内部的@RequestMapping注释,例如:

  • ModelAndView(类)
  • 模型(接口(interface))
  • map
  • 字符串
  • 无效
  • 查看
  • HttpEntity<?>ResponseEntity<?>
  • HttpHeaders

  • 还有更多..... See Docs

    每种返回类型都有其特定的用法,例如:如果使用的是String,则表示返回 View 名称,此 View 名称将由ViewResolver解析。如果您不想返回任何 View 名称,则将返回类型称为void。如果要设置 View 名称以及要发送一些数据以进行查看,请使用ModelAndView作为返回类型。

    请仔细阅读文档,您还将了解可以在处理程序方法中传递哪种方法参数。

    10-07 18:56
    查看更多