先来看看官方文档上对mvc:view-controller的说明:
This is a shortcut for defining a ParameterizableViewController
that immediately forwards to a view when invoked. Use it in static cases when there is no Java controller logic to execute before the view generates the response.
上面其实说了二点:
1.配置了mvc:view-controller等于在spring中配置了ParameterizableViewController,这是一个controller,继承自AbstractController(所以需要BeanNameUrlHandlerMapping或SimpleUrlHandlerMapping来处理映射,实际上加了这个配置spring正是自动配置了这两个映射器),所有mvc:view-controller的配置的请求都交给ParameterizableViewController来处理
2.它适用于映射静态资源(如jsp等)
3.(自己查找资料得知)默认是使用转发,如果要使用重定向请加redirect:前缀
使用场景:
spring文档里建议并将其做为最佳实践将所有的jsp页面放到WEB-INF下,不让直接访问,那么我们只能通过controller来访问jsp页面了,但是我们总不能为每个页面都写一个controller吧,那样太麻烦了,所以mvc:view-controller就是处理这个场景的一个shortcut(快捷方式)。
注:
现实开发中一定要开启<mvc:annotation-driven />注解,要不然写了上面的配置注解方式的controller就不起作用了。