복붙노트

[SPRING] 어떻게 봄 부팅에서 편안 컨트롤러에서 HTML 페이지를 반환?

SPRING

어떻게 봄 부팅에서 편안 컨트롤러에서 HTML 페이지를 반환?

나는 컨트롤러에서 간단한 HTML 페이지를 반환하려면,하지만 난 파일이 아닌 컨텐츠의 이름을 얻는다. 왜?

이것은 내 컨트롤러 코드입니다 :

@RestController
public class HomeController {

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

이것은 내 프로젝트 구조입니다 :

[

해결법

  1. ==============================

    1.이 같은 @RestController 사용하는 경우 :

    이 같은 @RestController 사용하는 경우 :

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

    당신이 정상적인 컨트롤러에서 다음과 같이 것처럼 이것은 동일합니다 :

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

    @ResponseBody 반환 "로그인"를 반환 사용; String 객체로. 당신이 돌아가 모든 객체는 JSON으로 HTTP 본문의 페이로드로 첨부됩니다.

    당신이 바로 응답 로그인지고 이유입니다.

  2. ==============================

    2.당신의 ModelAndView를 사용하여 시도 할 수 있습니다 :

    당신의 ModelAndView를 사용하여 시도 할 수 있습니다 :

    @RequestMapping("/")
    public ModelAndView index () {
        ModelAndView modelAndView = new ModelAndView();
        modelAndView.setViewName("index");
        return modelAndView;
    }
    
  3. ==============================

    3.나는 치어 파일에이 종속성에 추가 될 때까지 Kukkuz의 대답은 나를 위해 작동하지 않았다 :

    나는 치어 파일에이 종속성에 추가 될 때까지 Kukkuz의 대답은 나를 위해 작동하지 않았다 :

    <!-- Spring boot Thymeleaf -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-thymeleaf</artifactId>
    </dependency>
    

    여기 가이드에서.

    뿐만 아니라 여기에 설명 된대로 레지스트리 자원을 업데이트있다.

    그런 다음 잘 일하기 시작했다. 미래에 누군가가 같은 문제로 실행하고 문제가 해결되지 않는 첫 번째 대답을 다음과 같은 경우, @의 코드를 사용 후 Kukkuz의 답변을이 다른 2 단계를 수행하고 그 차이를 만드는 경우를 참조하십시오.

  4. ==============================

    4.아래의 단계에 따라

    아래의 단계에 따라

  5. ==============================

    5.당신은 login.html을 사용해야합니다. 그리고 컨트롤러와 RestController 교체

    당신은 login.html을 사용해야합니다. 그리고 컨트롤러와 RestController 교체

  6. ==============================

    6.@Controller와 @RestController를 교체합니다.

    @Controller와 @RestController를 교체합니다.

  7. ==============================

    7.나는 Thymeleaf를 사용하지 않는 그것은 나를 위해 일한 유일한 방법은 @Controller로했다 클래스 및

    나는 Thymeleaf를 사용하지 않는 그것은 나를 위해 일한 유일한 방법은 @Controller로했다 클래스 및

    @RequestMapping(method = RequestMethod.GET, value = "/")
    public String index() {
        return "index.html";
    }
    
  8. ==============================

    8.@Controller와 @Restcontroller를 교체합니다. @Restcontroller 전용 콘텐츠 HTML 및 JSP 페이지하지를 반환합니다.

    @Controller와 @Restcontroller를 교체합니다. @Restcontroller 전용 콘텐츠 HTML 및 JSP 페이지하지를 반환합니다.

  9. ==============================

    9.가장 정확하고 현대적인 형태는 thymeleaf 모델 인스턴스와 같은 엔드 포인트 방법으로 종속성을 넣어 IOC의를 사용하는 것입니다 ...

    가장 정확하고 현대적인 형태는 thymeleaf 모델 인스턴스와 같은 엔드 포인트 방법으로 종속성을 넣어 IOC의를 사용하는 것입니다 ...

     @Controller 
     public class GreetingController {
            @GetMapping("/greeting") 
            public String greeting(
                @RequestParam(name="name", required=false, defaultValue="World") String name, Model model) {
                 model.addAttribute("name", name); 
                 return "greeting"; 
                 // returns the already proccessed model from src/main/resources/templates/greeting.html 
          }
     }
    

    https://spring.io/guides/gs/serving-web-content/ :에서 완벽한 예를 참조하십시오

  10. ==============================

    10.당신은 이름 만 반환 "로그인"를 반환하기 때문에 당신은 이름을 얻을 ;. 그것은 @RestController 그리고이 컨트롤러의 데이터를 반환 오히려보기보다는; 이 때문에, 당신은 당신이 메서드에서 반환 전용 콘텐츠를 얻을.

    당신은 이름 만 반환 "로그인"를 반환하기 때문에 당신은 이름을 얻을 ;. 그것은 @RestController 그리고이 컨트롤러의 데이터를 반환 오히려보기보다는; 이 때문에, 당신은 당신이 메서드에서 반환 전용 콘텐츠를 얻을.

    당신은 스프링 MVC를 사용할 필요가이 이름을 가진보기를 표시하려면,이 예제를 참조하십시오.

  11. ==============================

    11.String는 여기 반환 :

    String는 여기 반환 :

     return "login";
    

    다시 브라우저로 보낼 것을 전체 내용이 사실입니다.

    당신이 파일의 내용을 다시 전송해야 할 경우, 한 가지 방법은 다음과 같습니다

    당신은 파일을 다운로드 질문 봄 부팅 서비스에이 대답하여 갈 수있다

  12. from https://stackoverflow.com/questions/38700790/how-to-return-a-html-page-from-a-restful-controller-in-spring-boot by cc-by-sa and MIT license