javaspring-bootspring-mvcstatic-html

Spring boot mapping static html


I want to create spring boot web application.

I have two static html files: one.html, two.html.

I want to map them as follows

localhost:8080/one
localhost:8080/two

without using template engines (Thymeleaf).

How to do that? I have tried many ways to do that, but I have 404 error or 500 error (Circular view path [one.html]: would dispatch back to the current handler URL).

OneController.java is:

@Controller
public class OneController {
    @RequestMapping("/one")
    public String one() {
        return "static/one.html";
    }
}

Project structure is

enter image description here


Solution

  • Please update your WebMvcConfig and include UrlBasedViewResolver and /static resource handler. Mine WebConfig class looks as follows:

    @Configuration
    @EnableWebMvc
    public class WebConfig extends WebMvcConfigurerAdapter {
    
        @Override
        public void addResourceHandlers(ResourceHandlerRegistry registry) {
            registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/");
            super.addResourceHandlers(registry);
        }
    
        @Bean
        public ViewResolver viewResolver() {
            UrlBasedViewResolver viewResolver = new UrlBasedViewResolver();
            viewResolver.setViewClass(InternalResourceView.class);
            return viewResolver;
        }
    
    }
    

    I have checked it and seems working.

    Maciej's answer is based on browser's redirect. My solution returns static without browser interaction.