복붙노트

[SPRING] Spring MVC 컨트롤러 메소드의 유효한 리턴 타입은 무엇입니까?

SPRING

Spring MVC 컨트롤러 메소드의 유효한 리턴 타입은 무엇입니까?

Spring MVC에 대한 많은 경험이 없으며 컨트롤러 메소드가 리턴 할 수있는 유효성 리턴 유형은 다음과 같습니다.

그래서 사용자가 특정 컨트롤러 클래스에이 요청을 전달하는 DispatcherServlet에 의해 수신되고 처리 된 Http 요청을 생성한다는 것을 알고 있습니다.

컨트롤러 클래스는 다음과 같습니다.

@Controller
public class AccountController {

    @RequestMapping("/showAccount")
    public String show(@RequestParam("entityId") long id, Model model) {
        ...
    }

    .......................................
    .......................................
    .......................................
}

그래서 각 메소드가 특정 요청을 처리하고 처리 된 요청이 @RequestMapping 주석에 의해 지정된다는 것을 알고 있습니다.

또한 메서드가 논리적 뷰 이름 인 String 객체를 반환한다는 것을 알고 있습니다 (뷰를 처리하기 위해 뷰 해석기에서 확인 됨)

그래서이 단계에서 컨트롤러 클래스의 메서드는 String 객체 만 반환한다고 생각합니다. 그러나 나는 그것의 확실하지 않다. 어쩌면 이와 같은 방법으로 다른 종류의 객체를 반환 할 수 있습니까?

해결법

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

    1.핸들러 메쏘드에는 컨트롤러 안의 @RequestMapping에 의해 주석 처리 된 많은 리턴 타입이 있습니다 :

    핸들러 메쏘드에는 컨트롤러 안의 @RequestMapping에 의해 주석 처리 된 많은 리턴 타입이 있습니다 :

    훨씬 더 ..... ..... Docs보기

    모든 반환 형식은 예를 들어 다음과 같이 특정 용도로 사용됩니다. String을 사용하는 경우 View Name을 반환해야하며이 뷰 이름은 ViewResolver에서 확인됩니다. 뷰 이름을 반환하지 않으려면 return 유형을 void로 언급하십시오. 뷰 이름을 설정하고보기 위해 일부 데이터를 보내려는 경우 ModelAndView를 리턴 유형으로 사용하십시오.

    핸들러 메소드에서 전달할 수있는 메소드 인수의 종류를 알 수있는 문서를 검토하십시오.

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

    2.문서에 직접 응답이 있습니다.

    문서에 직접 응답이 있습니다.

    특별한주의를 기울이십시오.

    이 메소드가 @ResponseBody로 주석 처리되면 반환 유형은 사용자 정의 유형, Java pojo 일 수 있으며 프레임 워크는 적절한 repententation JSON, XML 등으로 변환하여 응답 본문에 다시 기록합니다.

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

    3.AnnotationMethodHandlerAdapter # getModelAndView를 살펴볼 수 있습니다. 이 메소드에는 반환 값을 기반으로하는 여러 조건이 반환 유형을 기반으로 선택됩니다.

    AnnotationMethodHandlerAdapter # getModelAndView를 살펴볼 수 있습니다. 이 메소드에는 반환 값을 기반으로하는 여러 조건이 반환 유형을 기반으로 선택됩니다.

  4. from https://stackoverflow.com/questions/29365833/what-are-valid-return-types-of-a-spring-mvc-controller-method by cc-by-sa and MIT license