WebMvcConfigurerAdapter addViewController的作用
时间: 2023-07-24 14:34:05 浏览: 50
WebMvcConfigurerAdapter是Spring框架提供的一个用于修改Spring MVC配置的适配器类。其中,addViewController()方法用于添加一个简单的ViewController,这个ViewController会直接渲染指定的视图。
在Spring MVC中,ViewController是一个可以直接渲染视图的Controller。它不需要处理具体的业务逻辑,只需要返回一个视图名称即可。addViewController()方法可以用于为一个URL路径添加一个对应的ViewController,从而使得访问这个URL路径时,能够直接渲染指定的视图。
例如,下面的代码将为"/home"路径添加一个名为"home"的ViewController,它将渲染名为"home.html"的视图:
```
@Configuration
public class MvcConfig extends WebMvcConfigurerAdapter {
@Override
public void addViewControllers(ViewControllerRegistry registry) {
registry.addViewController("/home").setViewName("home");
}
}
```
这样,当用户访问"/home"路径时,Spring MVC就会自动渲染名为"home.html"的视图,并返回给用户。这个功能可以使我们更加方便地进行简单页面的跳转和展示。
相关问题
WebMvcConfigurerAdapter addViewController怎么添加jsp
要在Spring MVC中使用JSP视图,需要添加对JSP的支持。在Spring Boot中,添加对JSP的支持通常需要以下步骤:
1. 在pom.xml文件中添加对JSP的依赖:
```
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<scope>provided</scope>
</dependency>
```
2. 在application.properties文件中添加JSP视图解析器的配置:
```
spring.mvc.view.prefix=/WEB-INF/views/
spring.mvc.view.suffix=.jsp
```
3. 在WebMvcConfigurerAdapter配置类中使用addViewController()方法添加一个ViewController,并将它的视图名称设置为JSP文件的名称(不带后缀):
```
@Configuration
public class MvcConfig extends WebMvcConfigurerAdapter {
@Override
public void addViewControllers(ViewControllerRegistry registry) {
registry.addViewController("/home").setViewName("home"); // 视图名称为home.jsp
}
}
```
4. 将JSP文件放置在src/main/webapp/WEB-INF/views/目录下。
这样配置后,当用户访问"/home"路径时,Spring MVC会自动查找名为"home.jsp"的JSP文件进行渲染,并将结果返回给用户。
WebMvcConfigurerAdapter
WebMvcConfigurerAdapter是一个过时的类,在Spring Framework 5.0版本中已经被废弃。类是用于配置Spring MVC的适配器,用于自定义和扩展Spring MVC的行为。
在新的Spring版本中,推荐使用实现WebMvcConfigurer接口来进行配置。通过实现该接口,可以覆盖默认的Spring MVC配置,并添加自定义的配置。
下面是一个示例:
```java
@Configuration
public class WebMvcConfig implements WebMvcConfigurer {
@Override
public void addViewControllers(ViewControllerRegistry registry) {
registry.addViewController("/home").setViewName("home");
registry.addViewController("/login").setViewName("login");
}
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/static/**")
.addResourceLocations("classpath:/static/"); }
@Override
public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
configurer.enable();
}
}
```
上述示例中,WebMvcConfig类实现了WebMvcConfigurer接口,并覆盖了其中的几个方法,实现了自定义的配置。
需要注意的是,在新版本的Spring中,不再需要继承WebMvcConfigurerAdapter类。