我的应用程序中有两个控制器;一个是userController
,我有添加、删除和更新方法;另一个是studentController
,我也有添加、删除和更新方法。
@RequestMapping
我在两个控制器中使用注释的方法中的所有映射都是相同的。我有一个困惑:如果我们从 JSP 传递相同的动作,那么 Dispatcher 将如何找到相应的控制器?如果有人可以使用示例来描述这个,将不胜感激。
我的应用程序中有两个控制器;一个是userController
,我有添加、删除和更新方法;另一个是studentController
,我也有添加、删除和更新方法。
@RequestMapping
我在两个控制器中使用注释的方法中的所有映射都是相同的。我有一个困惑:如果我们从 JSP 传递相同的动作,那么 Dispatcher 将如何找到相应的控制器?如果有人可以使用示例来描述这个,将不胜感激。
您必须@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
我们可以有任意数量的控制器,URL 映射将决定调用哪个控制器。
详细的 Spring MVC 多控制器示例请参考这里