我的应用程序中有两个控制器;一个是userController
,我在其中添加,删除和更新方法;另一个是studentController
,我还有添加,删除和更新方法。
在我的方法中,两个控制器中使用@RequestMapping
注释的所有映射都是相同的。我有一个困惑:如果我们从JSP传递相同的操作,那么Dispatcher将如何找到相应的控制器?如果有人能用这个例子描述这个,我们将不胜感激。
答案 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多控制器示例