Spring MVC @RestController и перенаправление

Мне реализовали конечную точку REST с Spring MVC @RestController. Когда-то, зависит от входных параметров в моем контроллере, который я должен отправить перенаправлению http на клиенте.

Действительно ли это возможно с Spring MVC @RestController и если так, Вы могли показать пример?

57
задан 17 March 2015 в 08:43

2 ответа

Столкнулся с этим вопросом и был удивлен, что никто не упомянул RedirectView. Я только что протестировал его, и можно решить это чистым 100%-м пружинным способом с:

@RestController
public class FooController {

    @RequestMapping("/foo")
    public RedirectView handleFoo() {
        return new RedirectView("some-url");
    }
}
7
ответ дан 1 November 2019 в 16:04

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();
}
0
ответ дан 1 November 2019 в 16:04

Другие вопросы по тегам:

Похожие вопросы: