想象一下,我有一个像这样的Spring MVC控制器:
@Controller
@RequestMapping("/base-url")
public class MyController{
//..snip
@RequestMapping(method=RequestMethod.GET, value="/edit/{id}")
public String edit(Model model, HttpServletRequest request, Authentication authentication){
//..snip
}
}
我的问题是关于函数级value
注释的内部@RequestMapping
参数。需要/edit/{id}
上的预斜线,还是edit/{id}
也能完成这项工作?我想象预斜杠会将请求设置为绝对,无论类级映射如何,但它似乎被忽略了。
一种或另一种被认为是更好的做法吗? 在Spring文档中,他们似乎总是使用预斜杠。这样做有什么实际好处吗?
谢谢,
IDB。
答案 0 :(得分:4)
根据spring文档,具有类级别@RequestMapping注释意味着所有方法级别@RequestMappings将相对于类的级别。
但是,在某些极少数情况下,能够覆盖相对映射可能会很好。
答案 1 :(得分:0)
我个人更喜欢在@RequestMapping的值中添加pre-slash。在代码级别,您可以看到:如果值不以/开头,那么Spring(DefaultAnnotationHandlerMapping)将添加它。详细解答您可以访问:Use or not leading slash in value for @RequestMapping. Need official docs or point to Spring source?