如何在Spring MVC中映射多个控制器

Ask*_*rma 15 spring spring-mvc

我的应用程序中有两个控制器; 一个是userController,我添加,删除和更新方法; 另一个是studentController,我也有添加,删除和更新方法.

在我的方法中,所有映射都使用@RequestMapping两个控制器中的注释相同.我有一个困惑:如果我们从JSP传递相同的操作,那么Dispatcher将如何找到相应的控制器?如果有人能用这个例子来描述这个,我们将不胜感激.

Fre*_*ose 35

您必须@RequestMapping在类级别设置注释,该注释的值将是进入该控制器的所有请求的前缀,
例如:

你可以有一个用户控制器

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

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

和学生控制员

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

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

两个控制器都有相同的方法,具有相同的请求映射,但您可以通过以下uris访问它们:

yourserver/user/edit
yourserver/student/edit
Run Code Online (Sandbox Code Playgroud)

心连心