В чем различие между return {veiwName} и return redirect:/

123
06 июня 2021, 14:20

Spring Boot MVC, Controller, RequestMapping указывает на файл index как /. Метод

@PostMapping
public String add(@RequestParam(value = "name")  String name) {
    return "redirect:/";
}

может возвращать как имя файла return "index"; так и return "redirect:/"; приложение работает одинаково. Не могу понять, в чем разница.

Answer 1

когда Вы говорите return "index"; Вы указываете имя view, которая будет использована шаблонизатором для заполненения модели и рендеринга имя_view.html страницы, таким образом происходит следующая цепочка: запрос к контроллеру -> отрисовка страницы.

В случае return "redirect:/"; вы производите редирект в рут "/", который в Вашем случае является методом контроллера add, который так же возвращает index.html, только цепочка в этом случае будет уже следующая: запрос к контроллеру -> редирект -> запрос к контроллеру -> отрисовка страницы Таким образом метод add будет вызван два раза в случае redirect. Если хочется чуть лучше понимать как работает MVC попробуйте прочитать эту статью: https://habr.com/ru/post/461965/

READ ALSO
Проблема с типами данных

Проблема с типами данных

Смысл такой: записываю пути файлов в массив, есть переменная которая считает шаг, нужно чтобы картинка jLabel менялась при каждом шагеподскажите...

85
Angular с Spring Boot, node_modules appers empty

Angular с Spring Boot, node_modules appers empty

Делаю в точности по https://wwwbaeldung

182
Как указать длину пустого двумерного массива?

Как указать длину пустого двумерного массива?

Имеется задача по написанию метода, который возвращает максимальное значение в двумерном массивеСмысл выполнения ее мне понятен

100
ListView с двумя полями

ListView с двумя полями

Пишу приложение в котором будут выводиться временные промежутки, поскольку их будет много решил сделать нумерацию через таблицы, в итоге...

82