requestMapping在控制器和方法之间的差异是什么

时间:2011-03-17 05:07:27

标签: java spring-mvc mapping

如果我有:

@RequestMapping("/user")
public class RegistrationController {

   @RequestMapping(value = "/register", method = RequestMethod.GET)
   public String getRegisterPage(Model model) {

有什么区别?我的意思是如果我删除/user映射会发生什么,我的/register映射是否仍然有效?

2 个答案:

答案 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”)。

相关问题