对于最新稳定版本,请使用 Spring Framework 7.0.6spring-doc.cadn.net.cn

视图控制器

这是定义一个 ParameterizableViewController 的快捷方式,该控制器在被调用时会立即转发到一个视图。你可以在静态场景中使用它,即在视图生成响应之前无需执行任何 Java 控制器逻辑的情况。spring-doc.cadn.net.cn

以下 Java 配置示例将对 / 的请求转发到名为 home 的视图:spring-doc.cadn.net.cn

@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 的方式实现了与前述示例相同的功能:spring-doc.cadn.net.cn

<mvc:view-controller path="/" view-name="home"/>

如果一个 @RequestMapping 方法被映射到某个 URL(无论使用何种 HTTP 方法),则不能使用视图控制器(view controller)来处理相同的 URL。这是因为通过 URL 匹配到带注解的控制器(annotated controller)被视为足够明确的端点归属指示,从而可以向客户端返回 405(METHOD_NOT_ALLOWED)、415(UNSUPPORTED_MEDIA_TYPE)或类似的响应,以协助调试。因此,建议避免将同一 URL 的处理逻辑拆分到带注解的控制器和视图控制器之间。spring-doc.cadn.net.cn