我有两个控制器在我的应用程序中,一个是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