Аннотация RequestMapping в Spring MVC

Классов контроллеров в MVC-приложении может быть много. Давайте создадим еще один контроллерMVController2.

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

То есть у нас в проекте сейчас два класса контроллера и в адресной строке можно указать, чтобы производился поиск метода обработчика не во всех контроллерах, которые у нас есть, а только в конкретном.

Для этого RequestMapping нужно прописать над классом контроллером и передать этой аннотации путь к этому классу контроллеру также, как мы писали эту аннотацию над методами обработчиками.

Первый класс контроллер:

package classes; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @Controller //Внизу пишем путь к этому классу контроллеру. //Теперь если клиент захочет //перейти например к первому обработчику в этом //контроллере ему нужно будет перейти по адресу: //http://localhost:8080/SpringMVCap/FirstController/FirstJSP @RequestMapping(“/FirstController”) public class MVCcontroller{ @RequestMapping(“/FirstJSP”) public String FirstJSP() { return “JSPpage”; //имя jsp } @RequestMapping(“/SecondJSP”) public String SecondJSP() { return “JSPpage1”; //имя jsp } }

Второй класс контроллер:

package classes; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @Controller //Внизу пишем путь к этому классу контроллеру. //Теперь если клиент захочет клиент захочет //перейти например к первому обработчику в этом //контроллере ему нужно будет перейти по адресу: //http://localhost:8080/SpringMVCap/SecondController/FirstJSP @RequestMapping(“/SecondController”) public class MVCcontroller2{ @RequestMapping(“/FirstJSP”) public String FirstJSP() { return “JSPpage”; //имя jsp } @RequestMapping(“/SecondJSP”) public String SecondJSP() { return “JSPpage1”; //имя jsp } }

Можно увидеть, что методы обработчики в обоих классах имеют одинаковые адреса            

То есть видим, что и в первом классе и во втором есть метод помеченный @RequestMapping("/FirstJSP").

Если бы мы не указали над классами RequestMapping, то DispatcherServlet не понял бы какой из методов обработчиков, помеченных путем /FirstJSP вызывать.

Перейдем к FirstJSP через первый контроллер.

Перейдем к FirstJSP через второй контроллер.

Как видим, обе jsp страницы открылись успешно через разные классы контроллеры.

Обработка дынных формы в Spring MVC, передача данных в Model

Обработка данных формы в Spring MVC: создание формы, обработчиков запросов и передача данных через Model. Разница между GET и POST запросами в Spring.

Time to read: 18

Специальный тег Form в Spring

Spring Form Tag: как использовать form:form для прямой привязки полей объекта к HTML-форме. Генерация геттеров/сеттеров в Eclipse и работа с Model в Spring MVC.

Time to read: 18

Теги Spring Form: Select, Radio, Checkbox

Изучите теги Spring Form: Select, Radio, Checkbox для связывания полей объекта с HTML-формой. Практические примеры работы с form:select, form:radio и form:checkbox в Spring MVC.

Time to read: 19