视图控制器
这是定义一个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")
}
}
以下示例实现了与前面示例相同的功能,但使用XML,通过使用<mvc:view-controller>
元素:
<mvc:view-controller path="/" view-name="home"/>
如果将@RequestMapping
方法映射到任何HTTP方法的URL,则无法使用视图控制器来处理相同的URL。这是因为通过URL与注释控制器匹配被认为是足够强烈的端点所有权指示,以便向客户端发送405(METHOD_NOT_ALLOWED)、415(UNSUPPORTED_MEDIA_TYPE)或类似响应以帮助调试。因此,建议避免在注释控制器和视图控制器之间拆分URL处理。