SpringBoot : How to display static html file in Spring boot MVC application
Points To Remember
- In order to serve static files like js, css, images etc ,all your files should be under the resources/static folder. Spring application can serve all the static files inside folders
- resources/static/
- resources/public/
- In order to serve html files from spring boot application
- your html files should be under static/public folder
- you need to add view controller to serve html file
How to display static html file in Spring boot MVC application
Step 1 : Extend Class WebMvcConfigurerAdapter
- You should create a class that extends WebMvcConfigurerAdapter
- Your class should have @Configuration annotation.
- You class should not have @EnableMvc annotation.
- Override addViewControllers method and add your mapping.
- Override configurePathMatch method and update suffix path matching.
- @Configuration
- public class MvcConfigurer extends WebMvcConfigurerAdapter {
- @Override
- public void addViewControllers(ViewControllerRegistry registry) {
- registry.addViewController("/error").setViewName("error.html");
- registry.setOrder(Ordered.HIGHEST_PRECEDENCE);
- }
- @Override
- public void configurePathMatch(PathMatchConfigurer configurer) {
- super.configurePathMatch(configurer);
- configurer.setUseSuffixPatternMatch(false);
- }
- }
- In the above code we have added a mapping for "/error" to show "/error.html"
- Set the registry order to highest precedence, otherwise app will not render the page.
- Ovveride configurePathMatch to set suffix pattern to false, this will allow /error to render /error.html
NOTE :: Similarly you can add other mappings to display your html pages. To add a default landing page to the application you can add "index.html" under static folder. For index file, you do not need to add any mapping.
No comments: