@RequestMapping使用或不使用斜杠值。需要官方文档或指向Spring源码吗?
问题内容:
我参与了一个混合了以下项目的项目:
@RequestMapping(value =“ events / ...”);
@RequestMapping(value =“ / events / ...”);
(在方法级别注释之前使用和不使用斜杠)。
我执行搜索:
网站:http://static.springsource.org/spring/docs/3.1.x斜线
但是这些来源都没有回答为什么跳过斜线的原因。Spring官方文档始终在示例中显示斜线…
需要指向官方文档或Spring来源。
问题答案:
没关系:如果路径不是以开头,/
那么Spring(DefaultAnnotationHandlerMapping)将添加它。
参见String[] determineUrlsForHandler(String beanName)
类DefaultAnnotationHandlerMapping
第122行的方法(spring3.1.2)(针对类级别)
String[] methodLevelPatterns = determineUrlsForHandlerMethods(handlerType, true);
for (String typeLevelPattern : typeLevelPatterns) {
if (!typeLevelPattern.startsWith("/")) {
typeLevelPattern = "/" + typeLevelPattern;
}
参见String[] determineUrlsForHandler(Class<?> handlerType, final boolean hasTypeLevelMapping))
类DefaultAnnotationHandlerMapping
线182的方法(spring3.1.2)(对于方法级别)
String[] mappedPatterns = mapping.value();
if (mappedPatterns.length > 0) {
for (String mappedPattern : mappedPatterns) {
if (!hasTypeLevelMapping && !mappedPattern.startsWith("/")) {
mappedPattern = "/" + mappedPattern;
}