javahtmlspringspring-bootcontroller

How to return an HTML page from a RESTful controller in Spring Boot?


I want to return a simple HTML page from a controller, but I get only the name of the file not its content. Why?

This is my controller code:

@RestController
public class HomeController {

    @RequestMapping("/")
    public String welcome() {
        return "login";
    }
}

This is my project structure:

[enter image description here


Solution

  • When using @RestController like this:

    @RestController
    public class HomeController {
    
        @RequestMapping("/")
        public String welcome() {
            return "login";
        }
    }
    

    This is the same as you do like this in a normal controller:

    @Controller
    public class HomeController {
    
        @RequestMapping("/")
        @ResponseBody
        public String welcome() {
            return "login";
        }
    }
    

    Using @ResponseBody returns return "login"; as a String object. Any object you return will be attached as payload in the HTTP body as JSON.

    This is why you are getting just login in the response.