Мне реализовали конечную точку REST с Spring MVC @RestController. Когда-то, зависит от входных параметров в моем контроллере, который я должен отправить перенаправлению http на клиенте.
Действительно ли это возможно с Spring MVC @RestController и если так, Вы могли показать пример?
Столкнулся с этим вопросом и был удивлен, что никто не упомянул RedirectView. Я только что протестировал его, и можно решить это чистым 100%-м пружинным способом с:
@RestController
public class FooController {
@RequestMapping("/foo")
public RedirectView handleFoo() {
return new RedirectView("some-url");
}
}
redirect
средства http код 302
, что означает Found
в springMVC.
Вот util метод, который мог быть помещен в некоторый BaseController
:
protected ResponseEntity found(HttpServletResponse response, String url) throws IOException { // 302, found, redirect,
response.sendRedirect(url);
return null;
}
<час> , Но иногда мог бы хотеть возвратить код http 301
вместо этого, что означает moved permanently
.
В этом случае, вот util метод:
protected ResponseEntity movedPermanently(HttpServletResponse response, String url) { // 301, moved permanently,
return ResponseEntity.status(HttpStatus.MOVED_PERMANENTLY).header(HttpHeaders.LOCATION, url).build();
}