一,使用场景
很多时候,我们使用SpringBoot来写项目的时候,项目的架构可能是前后端不分离的,前端发送请求,后端可能只需要一个页面的跳转,没有业务逻辑,这个时候,我们可以写Controller来处理这些请求,如:
@Controller
public class LoginController {
@GetMapping("/login.html")
public String loginPage(){
return "login";
}
@GetMapping("/reg.html")
public String regPage(){
return "reg";
}
}
但是这些代码,仅仅是页面的跳转,并没有实际业务,所以我们也可以使用WebMvcConfigurer视图映射来完成功能,addViewControllers方法可以实现将一个请求直接映射为视图,不需要编写控制器来实现,从而简化了页面跳转。
二,使用方法
- 1,写一个配置类,实现WebMvcConfigurer
- 2,重写addViewControllers(ViewControllerRegistry registry)方法,
- 3,给视图控制器(ViewControllerRegistry)添加视图路径映射
@Configuration
public class NaisimallWebConfig implements WebMvcConfigurer {
@Override
public void addViewControllers(ViewControllerRegistry registry) {
registry.addViewController("/login.html").setViewName("login");
registry.addViewController("/reg.html").setViewName("reg");
}
}
这样,我们不使用@GetMapping("/login.html")等方法,也可以完成指定路径视图的跳转
三,注意
1,路径映射默认都是get方式访问的,如果是POST方法,就不能使用,会出现HttpRequestMethodNotSupportedException: Request method ‘POST‘ not supported异常, 2,如果是POST方式,提交表单,需要页面的跳转,可以使用重定向方式,即redirect
|