복붙노트

[SPRING] spring4 @RestController를 사용하여 jsp 페이지를 반환하는 방법?

SPRING

spring4 @RestController를 사용하여 jsp 페이지를 반환하는 방법?

내가 spring3 @Controller를 다음과 같이 사용할 때 :

@RequestMapping("/userCenter")

@Controller
public class LoginCtrl {
    @RequestMapping("/loginPage")
    public String login(HttpServletRequest request,HttpServletResponse response,Model model) throws Exception { 
        return "userCenter/loginPage";
    }
}

브라우저에서 loginPage.jsp 권한을 얻었습니다.

하지만 @Controller를 @RestController로 바꿀 때

localhost : 8080 // userCenter / loginPage는 "userCenter / loginPage"문자열이있는 페이지를 반환합니다.

그래서, 어떻게 @RestController를 @Controller와 같은 JSP 페이지를 얻을 수 있을까요?

해결법

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

    1.넌 안된다. @RestController는 뷰를 반환하지 않습니다. 이것은 직접 응답 기관에 쓸 내용을 반환하는 것을 의미합니다.

    넌 안된다. @RestController는 뷰를 반환하지 않습니다. 이것은 직접 응답 기관에 쓸 내용을 반환하는 것을 의미합니다.

    꼭해야 할 일이 있다면, 당신의 메소드가 리턴 타입의 View 또는 ModelAndView를 가지며, 식별 가능한 뷰 이름으로 적절한 객체를 반환하도록 선언 할 수 있습니다.

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

    2.사실, @ RestController 또한보기를 반환 할 수 ...

    사실, @ RestController 또한보기를 반환 할 수 ...

    언젠가 연구하고 문서를 읽은 후, 나는 해결책을 얻었다.

    이 솔루션을 모든 사람들과 공유하겠습니다.

    먼저 컨트롤러 메서드의 반환 형식을 "ModelAndView"로 설정합니다.

    둘째, 이렇게보기 경로를 설정하십시오.

    ModelAndView mav = new ModelAndView("userCenter/loginPage");
    

    마침내

    return mav;
    

    적절한 JSP 페이지 내용을 보게 될 것입니다.

  3. ==============================

    3.API 문서에서 @RestController를 확인하십시오. @ResponseBody 자체가 주석 처리되어 있습니다. 이는 메소드 반환 값이 웹 응답 본문에 바인딩되어야 함을 나타냅니다. 구성된 뷰 객체는 절대로 실행되지 않으므로 어떤 뷰에도 매핑 할 수 없습니다. 내 질문에 어쨌든 RestController를 사용하려는 이유가 있습니다. 뷰에 맵핑하지 않아도됩니까?

    API 문서에서 @RestController를 확인하십시오. @ResponseBody 자체가 주석 처리되어 있습니다. 이는 메소드 반환 값이 웹 응답 본문에 바인딩되어야 함을 나타냅니다. 구성된 뷰 객체는 절대로 실행되지 않으므로 어떤 뷰에도 매핑 할 수 없습니다. 내 질문에 어쨌든 RestController를 사용하려는 이유가 있습니다. 뷰에 맵핑하지 않아도됩니까?

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

    4.@RestController는 모든 본문에 대해 @ResponseBody를 자동으로 구성합니다. 즉, 출력에 모든 것을 쓰고보기를 반환하지 않도록 설계되었습니다. 만약 당신이보기를 반환하고자한다면 @Controller를 사용하여 다른 클래스를 구성하고 그에 따라 뷰를 리턴하십시오.

    @RestController는 모든 본문에 대해 @ResponseBody를 자동으로 구성합니다. 즉, 출력에 모든 것을 쓰고보기를 반환하지 않도록 설계되었습니다. 만약 당신이보기를 반환하고자한다면 @Controller를 사용하여 다른 클래스를 구성하고 그에 따라 뷰를 리턴하십시오.

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

    5.REST API에 리디렉션 대체를 만들기 위해 @RestController와 함께 여전히 유용 할 수 있습니다.

    REST API에 리디렉션 대체를 만들기 위해 @RestController와 함께 여전히 유용 할 수 있습니다.

    @GetMapping("/**")
    public ModelAndView Default()
    {
        ModelAndView mav = new ModelAndView("redirect:/actuator/health");
        return mav;
    }
    
  6. from https://stackoverflow.com/questions/26031254/how-to-use-spring4-restcontroller-to-return-a-jsp-page by cc-by-sa and MIT license