如果我有:
@RequestMapping("/user")
public class RegistrationController {
@RequestMapping(value = "/register", method = RequestMethod.GET)
public String getRegisterPage(Model model) {
有什么区别?我的意思是如果我删除/user
映射会发生什么,我的/register
映射是否仍然有效?
答案 0 :(得分:9)
不需要类级别的@RequestMapping。 没有它,所有路径都是绝对的,而不是相对的。
请参阅15.3.2 Mapping requests with @RequestMapping
这意味着如果你指定了classlevel注释,那么url应该是相对的,所以对于register,它应该是/ user / register(Handler mapping的URL),同样也是。
答案 1 :(得分:2)
如上所述here,您还可以在方法级别使用类型级别映射和相对路径映射,并且不要在每个方法上复制root。
@Controller
@RequestMapping("/employee/*")
public class Employee {
@RequestMapping("add")
public ModelAndView add(
@RequestParam(value = "firstName") String firstName,
@RequestParam(value = "surName") String surName) {
//....
}
@RequestMapping(value={"remove","delete"})
public ModelAndView delete(
//....
}
}
Spring doc:在方法级别,在类型级别表示的主映射中支持相对路径(例如“edit.do”)。