gpt4 book ai didi

spring-boot - WebMvcConfigurer 在 Spring Boot 中不起作用?

转载 作者:行者123 更新时间:2023-12-02 21:52:10 26 4
gpt4 key购买 nike

我改变了我完美工作的 Controller 类,它只是为了 View 分辨率的目的,如下所示:

@Controller
public class MyController {

@GetMapping("/signup")
public String signupPage() {
return "signup";
}

@GetMapping("/login")
public String loginPage() {
return "login";
}

@GetMapping("/dashboard")
public String dashboardPage() {
return "dashboard";
}

@GetMapping("/logout")
public String logoutPage() {
return "redirect:/";
}
}

扩展 WebMvcConfigurer 的类,它具有如下所示的所有 View 解析器:

@Configuration
@EnableWebMvc
public class ViewConfig implements WebMvcConfigurer {

@Override
public void addViewControllers(ViewControllerRegistry registry) {
registry.addViewController("/signup").setViewName("signup");
registry.addViewController("/login").setViewName("login");
registry.addViewController("/dashboard").setViewName("dashboard");
registry.addViewController("/logout").setViewName("redirect:/");
}

这感觉更加简洁、干净。

但是每当我尝试加载这些页面中的任何一个时,都会出现 405 Method Not allowed 错误。为什么会发生这种情况? spring boot 不支持WebMvcConfigurer吗?

最佳答案

Spring Boot Documentation 中提到了这一点,在spring mvc部分下可以使用WebMvcConfigurer,但不需要做@EnableWebMvc

所以你应该删除@EnableWebMvc注释!

@Configuration
// @EnableWebMvc Remove this!
public class ViewConfig implements WebMvcConfigurer {

@Override
public void addViewControllers(ViewControllerRegistry registry) {
registry.addViewController("/signup").setViewName("signup");
registry.addViewController("/login").setViewName("login");
registry.addViewController("/dashboard").setViewName("dashboard");
registry.addViewController("/logout").setViewName("redirect:/");
}

关于spring-boot - WebMvcConfigurer 在 Spring Boot 中不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57058377/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com