Главная » Spring » Отправка форм в стиле RESTful Spring

0

Мы познакомились с четырьмя основными методами протокола HTTP – GET, POST, PUT и DELETE, – определяющими основные опера- ции, которые можно выполнять над ресурсами. И теперь знаем, как установкой атрибута method аннотации @RequestMapping заставить

DispatcherServlet передавать HTTP-запросы определенным методам контроллеров. Фреймворк Spring MVC способен обрабатывать лю- бые типы HTTP-запросов, посылаемые клиентом.

Основные проблемы в этом отношении связаны с HTML и веб- браузерами. Клиенты, не являющиеся браузерами, такие как при- ложения, использующие класс RestTemplate, не должны испытывать проблем в выполнении HTTP-запросов любых типов. Но стандарт HTML 4 официально поддерживает только методы GET и POST, остав- ляя в стороне PUT, DELETE и все остальные методы протокола HTTP. Даже при том, что стандарт HTML 5 и новейшие версии браузеров поддерживают все методы HTTP, вы едва ли можете рассчитывать, что пользователи вашего приложения будут использовать современ- ные браузеры.

Обычно, чтобы обойти недостатки стандарта HTML 4 и старых браузеров, используется прием подмены запросов PUT и DELETE за- просами POST. Он заключается в передаче запроса POST со скрытым полем, несущим в себе фактическое имя метода HTTP. Когда запрос поступает на сервер, его тип переопределяется в соответствии со значением скрытого поля.

Фреймворк Spring поддерживает прием подмены запросов с по- мощью следующих двух особенностей:

# преобразование типа запроса с помощью HiddenHttpMethodFilter;

#  отображение скрытого поля с помощью JSP-тега <sf:form>. Посмотрим сначала, как использовать тег <sf:form> для отображе-

ния скрытого поля с целью подмены типа запроса.

Источник:   Уоллс К., Spring в действии. – М.: ДМК Пресс, 2013. – 752 с.: ил.

По теме:

  • Комментарии