gpt4 book ai didi

java - Spring Boot 无法解析 View

转载 作者:行者123 更新时间:2023-12-01 17:32:03 26 4
gpt4 key购买 nike

我正在尝试使用 Spring Boot 创建一个简单的 Controller 配置为:

@Configuration
@EnableWebMvc
@ComponentScan (basePackages = { "ru.spb.chat.controller" })
public class WebConfig implements WebMvcConfigurer {

@Bean
public ViewResolver viewResolver() {
InternalResourceViewResolver bean = new InternalResourceViewResolver();
bean.setPrefix("/WEB-INF/view/");
bean.setSuffix(".html");
return bean;
}
}

对于 servlet:

 public class MainWebAppInitializer implements WebApplicationInitializer {
@Override
public void onStartup(final ServletContext sc) throws ServletException {

AnnotationConfigWebApplicationContext root =
new AnnotationConfigWebApplicationContext();

root.scan("ru.spb");
sc.addListener(new ContextLoaderListener(root));

ServletRegistration.Dynamic appServlet =
sc.addServlet("mvc", new DispatcherServlet(new GenericWebApplicationContext()));
appServlet.setLoadOnStartup(1);
appServlet.addMapping("/");
}

}

我的 Controller 。

 @Controller
public class RootController {

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

但是当我尝试映射“/”时,它返回 404-ERROR这是我的项目结构: structure

最佳答案

删除您的WebConfig并删除您的ServletInitializerMainWebAppInitializer。 (您或许还可以删除 WebSocketConfig 并使用 Spring Boot 的自动配置!)。

让您的 ChatApplication 扩展 SpringBootServletInitializer 并实现 configure 方法。

@SpringBootApplication
public class ChatApplication extends SpringBootServletInitializer {

public static void main(String[] args) {
SpringApplication.run(ChatApplication.class, args);
}

@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(ChatApplication.class);
}

}

然后在您的application.properties中添加

spring.mvc.view.prefix=/WEB-INF/view/
spring.mvc.view.suffix=.html

现在您正在使用正确的 Spring Boot 自动配置和创建可执行 WAR 的正确方法。

话虽这么说,您通常不需要 WAR(仅当您使用 JSP 时,嵌入式容器不鼓励这样做)。

关于java - Spring Boot 无法解析 View,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61101040/

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