我在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
注释,例如:
HttpEntity<?>
或ResponseEntity<?>
HttpHeaders
还有更多..... See Docs
每种返回类型都有其特定的用法,例如:如果使用的是String,则表示返回 View 名称,此 View 名称将由
ViewResolver
解析。如果您不想返回任何 View 名称,则将返回类型称为void
。如果要设置 View 名称以及要发送一些数据以进行查看,请使用ModelAndView
作为返回类型。请仔细阅读文档,您还将了解可以在处理程序方法中传递哪种方法参数。