spring - 避免在Spring RequestMapping之间使用斜杠(/)

标签 spring slash request-mapping

考虑以下示例:

@Controller
@RequestMapping({"/home"})
public class Home {
    @RequestMapping(value = { "", "/" })
    public String index() {
        return "home";
    }
    @RequestMapping(value = { "-of-{id}" })
    public String of(@PathVariable("id") String id) {
        System.out.println(id);
        return "home";
    }
}

index()完美地映射到'/home'和'/home/';但是当我希望of(id)映射到'/home-of- {id}'时,它映射到'/home/-of- {id}'。

Spring会在'/home'和'-of- {id}'之间自动添加一个斜线,但是我想消除它,有什么建议吗?

最佳答案

当您定义类级别的映射时,Spring会将方法级别的映射视为其他段,而不是字符串连接。因此,您无法使用尝试的方法来获取/home-of-{id}

尝试摆脱类级别的@RequestMapping,并用完全显式的路径替换现有的方法级别的映射。将@RequestMapping("/home-of-{id}")放在of()上。

如果您要支持很多/home/路径(因此要保留类级别的定义),只需将/home-of-{id}移至单独的 Controller 即可。

关于spring - 避免在Spring RequestMapping之间使用斜杠(/),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9050150/

相关文章:

java - 使用 @Pattern 验证 UUID 或 UUID.toString()

java - Spring mvc 发现不明确的映射。无法映射 Controller bean 方法

java - Spring MVC 从 RequestMapping 引用 params 变量

java - TomCat:创建类路径资源中定义的名称为 'requestMappingHandlerAdapter' 的 bean 时出错

java - 第一次加载 jsp 页面时 Spring url 无法正确解析,第一次点击后可以正常工作

php - 带斜杠的 ZF2 路由参数

python - 双正斜杠在 Mechanize 中消失

java - Spring Boot JPA Mysql AWS 在 RequestMapping 上找不到

java - Spring 是我的正确选择吗?

c# - WCF Web JSON 请求双斜线