В приложении Spring MVC MultiActionController используется для группировки связанных действий в один контроллер, обработчик метода должен следовать приведенной ниже подписи:
public (ModelAndView | Map | String | void) actionName( HttpServletRequest, HttpServletResponse [,HttpSession] [,CommandObject]);
1. Мультиакционный контроллер
См. Пример мультиакционного контроллера.
package com.mkyong.common.controller;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.multiaction.MultiActionController;
public class CustomerController extends MultiActionController{
public ModelAndView add(HttpServletRequest request,
HttpServletResponse response) throws Exception {
return new ModelAndView("CustomerPage", "msg","add() method");
}
public ModelAndView delete(HttpServletRequest request,
HttpServletResponse response) throws Exception {
return new ModelAndView("CustomerPage", "msg","delete() method");
}
public ModelAndView update(HttpServletRequest request,
HttpServletResponse response) throws Exception {
return new ModelAndView("CustomerPage", "msg","update() method");
}
public ModelAndView list(HttpServletRequest request,
HttpServletResponse response) throws Exception {
return new ModelAndView("CustomerPage", "msg","list() method");
}
}
С ControllerClassNameHandlerMapping настроено.
2. Примеры отображения
Теперь запрошенный URL-адрес будет сопоставлен с именем метода в следующих шаблонах:
- Клиент Контроллер –> /клиент/*
- /клиент/ добавить .htm –> добавить()
- /клиент/ удалить .htm –> удалить()
- /клиент/ обновление .htm –> обновление()
- //клиент/ список .html –> список()
3. Решатель внутренних путей и методов
По умолчанию используется решатель InternalPathMethodNameResolver MultiActionController реализация для сопоставления URL-адреса с именем метода. Но вам все равно разрешено добавлять префикс или суффикс к имени метода:
Теперь URL-адрес будет сопоставлен с именем метода в следующем шаблоне:
- Клиент Контроллер –> /клиент/*
- /клиент/ добавить .htm –> тест добавить Клиент ()
- /клиент/ удалить .htm –> проверить удалить Клиент()
- /клиент/ обновление .htm –> тест обновление Клиент()
- /клиент/ список .htm –> тест listC устомер()
Скачать Исходный Код
Рекомендации
Оригинал: “https://mkyong.com/spring-mvc/spring-mvc-multiactioncontroller-example/”