Каково различие между return “вид” и return “redirect:vista” в методе POST для Спринг MVC?

То, что он перемещает, состоит в том, что у меня есть вид jsp, с которой я наполняю form, я посылаю данные посредством метода POST к моему драйверу и как только были закончены инструкции возвращаюсь в поле зрения главный из моего сайта. Однако, методы, содержавшие в моем драйвере GET для главного вида не инициализировались, возвращая полностью чистую ту же самую без информации, этого используя return"vista.jsp";

Однако используя return:"redirect:vista.jsp" мои методы идут на колесах возвращая информацию, мне удалось решить мою ошибку, но я хочу понять хорошо Ваше различие, так как я остался немного смущенным.

2
задан 27.01.2017, 05:58
2 ответа

То, за чем оно последует в тебе aplicaciГіn:

, Когда ты выполняешь return"vista.jsp", ты возвращаешь в браузер jsp, я предполагаю, что, когда ты говоришь

возвращая полностью чистую ту же самую без informaciГіn

, Он Состоит в том, что у тебя есть controller, который манипулирует request пользователя и помещает informaciГіn в тебе vista.jsp, но этот драйвер, у которого нет образцов эта lГіgica, поэтому он выходит "vacГ - в"

, Когда ты делаешь redirect:

инициализирует один request со стороны браузера к твоему url, следовательно присоединенный драйвер может загружать ее informaciГіn, , так как в этом моменте, если вводит в игру


PequeГ±o схема обоих случаев

Diferencia entre con y sin redirect


2
ответ дан 24.11.2019, 14:49
  • 1
    Эта схема заставила меня понимать все, действительно он и # 237; на м и # 233; все, но кажется, что он не выходил из главной идеи. – Max Sandoval 24.02.2016, 20:21
  • 2
    @MaxSandoval Изображение стоит больше, чем тысяча слов;) – jasilva 24.02.2016, 20:23

Если ты используешь return "vista"; сервер реализует forward в поле зрения. Если ты используешь return "redirect:vista"; сервер реализует redirect в url, присоединенный к виду. С этим в разуме, твой вопрос переводится в каких различиях есть между forward и redirect. Эти концепции не присоединены к Спринг а к разработке веб-приложений в Java.

Forward

Твою просьбу возвратит ответ с кодом 200, 201 или другой, например 500, если оно последует за ошибкой в течение внимания request. В этом случае, контент ответа будет контентом твоего вида, а именно, твой JSP. Прибыль состоит в том, что могут повторно использоваться признаки, помещенные в достижение request для того, чтобы использовать их в renderización вида. Это, использовав Forward, ты можешь делать это:

Код в controller:

public String ejecutaPost(Model model) {
    model.add("saludo", "hola mundo!");
    return "vista";
}

Код в виде (обычно JSP):

<p>El servidor manda un saludo: ${saludo}</p>

Redirect

Твоя просьба возвратит ответ с кодом 300 HTTP показывая, что клиент (браузер) должен реализовывать новую просьбу в другой url сервера (или, может быть, внешнего сервера). Сервер получит эту просьбу и обслужит ее.

В этом случае, не могут использовать признаки, помещенные на уровне request, потому что будет производиться новый цикл request-response к серверу.

3
ответ дан 24.11.2019, 14:49
  • 1
    Я думаю, что он преуспевает из-за изображения jeje, но твой ответ точный;) – jasilva 24.02.2016, 20:20
  • 2
    Окончательно имей оба и # 237; an raz и # 243; n, но я являлся блокированным с teor и # 237; в necesitaba что-то визуальное, чтобы выходить из моей главной идеи. Благодаря обоим. – Max Sandoval 24.02.2016, 20:23