视图控制器
这是一个快捷方式,用于定义一个 ParameterizableViewController
,该控制器在调用时立即转发到一个视图。您可以在静态情况下使用它,即在视图生成响应之前没有 Java 控制器逻辑要运行。
以下 Java 配置示例将对 /
的请求转发到名为 home
的视图
-
Java
-
Kotlin
@Configuration
@EnableWebMvc
public class WebConfig implements WebMvcConfigurer {
@Override
public void addViewControllers(ViewControllerRegistry registry) {
registry.addViewController("/").setViewName("home");
}
}
@Configuration
@EnableWebMvc
class WebConfig : WebMvcConfigurer {
override fun addViewControllers(registry: ViewControllerRegistry) {
registry.addViewController("/").setViewName("home")
}
}
以下示例使用 <mvc:view-controller>
元素实现了与前一个示例相同的功能,但使用了 XML
<mvc:view-controller path="/" view-name="home"/>
如果 @RequestMapping
方法映射到任何 HTTP 方法的 URL,则无法使用视图控制器来处理相同的 URL。这是因为通过 URL 匹配到带注释的控制器被认为是对端点所有权的足够强烈的指示,因此可以向客户端发送 405 (METHOD_NOT_ALLOWED)、415 (UNSUPPORTED_MEDIA_TYPE) 或类似的响应以帮助进行调试。因此,建议避免在带注释的控制器和视图控制器之间拆分 URL 处理。