15

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

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

4

2 回答 2

36

您必须@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) {
        ...
    }
}

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

yourserver/user/edit
yourserver/student/edit

hth

于 2013-09-28T17:45:39.153 回答
0

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

详细的 Spring MVC 多控制器示例请参考这里

于 2017-03-19T16:35:02.040 回答