我在Spring MVC中没有太多经验,并且我对 控制器方法可以返回的有效返回类型 有以下了解。
因此,我知道用户生成了一个 DispatcherServlet 接收并处理的 HttpRequest, 并将此请求 分派 到特定的控制器类。
控制器类是这样的:
@Controller public class AccountController { @RequestMapping("/showAccount") public String show(@RequestParam("entityId") long id, Model model) { ... } ....................................... ....................................... ....................................... }
因此,我知道每个方法都处理一个特定的请求,并且已处理的请求由 @RequestMapping 批注指定。
我也知道该方法返回一个 String 对象,该对象是 逻辑视图名称 (然后由 视图解析器解析 以呈现视图)
因此,在此阶段,我认为控制器类的方法仅返回 String 对象。但是我不确定。也许这样的方法还可以返回某些不同类型的对象?
Handler方法有很多返回类型可用,这些返回类型由@RequestMapping控制器内部注释,例如:
@RequestMapping
HttpEntity<?>
ResponseEntity<?>
HttpHeaders
还有更多..... 查看文档
每种返回类型都有其特定的用法,例如:如果使用的是String,则表示返回视图名称,此视图名称将由解析ViewResolver。如果您不想返回任何视图名称,则将返回类型称为void。如果要设置视图名称以及要发送一些数据以供视图使用,请ModelAndView用作返回类型。
ViewResolver
void
ModelAndView
请仔细阅读文档,您还将了解可以在处理程序方法中传递哪种方法参数。