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

时间:2013-09-28 15:27:35

标签: spring spring-mvc

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

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

2 个答案:

答案 0 :(得分:35)

您必须在类级别设置@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

答案 1 :(得分:0)

我们可以拥有任意数量的控制器,URL映射将决定调用哪个控制器..

请参阅here了解详细的Spring MVC多控制器示例