[SPRING] 봄 MVC @ RetController 및 리디렉션
SPRING봄 MVC @ RetController 및 리디렉션
Spring MVC @RestController로 구현 된 REST 엔드 포인트가있다. 언젠가는 내 컨트롤러의 입력 매개 변수에 의존합니다. 클라이언트에서 http 리디렉션을 보내야합니다.
Spring MVC @RestController로 가능합니까? 그렇다면 예제를 보여 주시겠습니까?
해결법
-
==============================
1.Handler 메소드에 HttpServletResponse 매개 변수를 추가 한 다음 response.sendRedirect ( "some-url");을 호출하십시오.
Handler 메소드에 HttpServletResponse 매개 변수를 추가 한 다음 response.sendRedirect ( "some-url");을 호출하십시오.
같은 것 :
@RestController public class FooController { @RequestMapping("/foo") void handleFoo(HttpServletResponse response) throws IOException { response.sendRedirect("some-url"); } }
-
==============================
2.HttpServletRequest 또는 HttpServletResponse에 대한 직접적인 종속성을 피하기 위해 다음과 같이 ResponseEntity를 리턴하는 "pure Spring"구현을 제안합니다.
HttpServletRequest 또는 HttpServletResponse에 대한 직접적인 종속성을 피하기 위해 다음과 같이 ResponseEntity를 리턴하는 "pure Spring"구현을 제안합니다.
HttpHeaders headers = new HttpHeaders(); headers.setLocation(URI.create(newUrl)); return new ResponseEntity<>(headers, HttpStatus.MOVED_PERMANENTLY);
메서드가 항상 리디렉션을 반환하면 ResponseEntity
를 사용하고 그렇지 않으면 일반적으로 제네릭 형식으로 반환됩니다. -
==============================
3.@RestController가 String을 반환하면 다음과 같은 것을 사용할 수 있습니다.
@RestController가 String을 반환하면 다음과 같은 것을 사용할 수 있습니다.
return "redirect:/other/controller/";
이 종류의 리디렉션은 GET 요청에만 사용됩니다. 다른 유형의 요청을 사용하려면 HttpServletResponse
from https://stackoverflow.com/questions/29085295/spring-mvc-restcontroller-and-redirect by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] 요청 문맥에 의존하는 메소드를 테스트하는 유닛 (0) | 2019.01.30 |
---|---|
[SPRING] 여러 역할을 확인하려면 <sec : authorize access = "hasRole ( 'ROLES)">를 어떻게 사용합니까? (0) | 2019.01.30 |
[SPRING] 항아리 안의 파일은 봄에 보이지 않습니다. (0) | 2019.01.30 |
[SPRING] 봄 - 동일한 유형의 콩 2 개 주입 (0) | 2019.01.30 |
[SPRING] Grails 2.3 데이터베이스 마이그레이션에서 "Plugin manager loading Error : TomcatGrailsPlugin" (0) | 2019.01.30 |