Подтвердить что ты не робот

Как сопоставить несколько контроллеров в Spring MVC

У меня в моем приложении два контроллера; один - userController, где у меня есть методы добавления, удаления и обновления; другой - studentController, где у меня также есть методы добавления, удаления и обновления.

Все сопоставления одинаковы в моих методах с использованием аннотации @RequestMapping в обоих контроллерах. У меня одна путаница: если мы передаем одно и то же действие с JSP, то как диспетчер найдет соответствующий контроллер? Если кто-нибудь может описать этот пример использования, будет оценен.

4b9b3361

Ответ 1

Вы должны установить аннотацию @RequestMapping на уровне класса, значение этой аннотации будет префиксом всех запросов, поступающих на этот контроллер,
например:

у вас может быть пользовательский контроллер

@Controller
@RequestMapping("user")
public class UserController {

    @RequestMapping("edit")
    public ModelAndView edit(@RequestParam(value = "id", required = false) Long id, Map<String, Object> model) {
        ...
    }
}

и контроллер ученика

@Controller
@RequestMapping("student")
public class StudentController {

    @RequestMapping("edit")
    public ModelAndView edit(@RequestParam(value = "id", required = false) Long id, Map<String, Object> model) {
        ...
    }
}

Оба контроллера имеют один и тот же метод с одинаковым сопоставлением запросов, но вы можете получить к ним доступ через следующий uris:

yourserver/user/edit
yourserver/student/edit

HTH

Ответ 2

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

Пожалуйста, обратитесь к [здесь] [1]

http://javainfinite.com/spring/spring-mvc-hibernate-mysql-multiple-controllers/ для подробного SPring примера с несколькими контроллерами MVC