首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spring Boot不解析视图

Spring Boot不解析视图
EN

Stack Overflow用户
提问于 2020-04-08 20:47:41
回答 1查看 34关注 0票数 0

我正在尝试用Spring Boot Congifuration创建一个简单的控制器:

代码语言:javascript
复制
@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:

代码语言:javascript
复制
 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("/");
    }

}

我的控制器。

代码语言:javascript
复制
 @Controller
 public class RootController {

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

但是当我尝试在"/“上映射时,它返回404-ERROR This is my project-structure:

EN

回答 1

Stack Overflow用户

发布于 2020-04-08 21:51:30

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

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

代码语言:javascript
复制
@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中添加

代码语言:javascript
复制
spring.mvc.view.prefix=/WEB-INF/view/
spring.mvc.view.suffix=.html

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

也就是说,您通常不想要WAR (仅当您使用JSP时,嵌入式容器不鼓励使用JSP)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61101040

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档