一尘不染

@RequestMapping使用或不使用斜杠值。需要官方文档或指向Spring源码吗?

spring-mvc

我参与了一个混合了以下项目的项目:

@RequestMapping(value =“ events / ...”);
@RequestMapping(value =“ / events / ...”);

(在方法级别注释之前使用和不使用斜杠)。

我执行搜索:

网站:http://static.springsource.org/spring/docs/3.1.x斜线

但是这些来源都没有回答为什么跳过斜线的原因。Spring官方文档始终在示例中显示斜线…

需要指向官方文档或Spring来源。


阅读 1290

收藏
2020-06-01

共1个答案

一尘不染

没关系:如果路径不是以开头,/那么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;
    }
2020-06-01