其他分享
首页 > 其他分享> > 避免Spring RequestMapping之间的斜杠(/)

避免Spring RequestMapping之间的斜杠(/)

作者:互联网

请考虑以下示例:

@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 /’;但当(我想)将它映射到’/ home-of-{id}’时,(id)被映射到’/ home / -of- {id}’.

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

解决方法:

在定义类级映射时,Spring将方法级映射视为附加段,而不是字符串连接.所以你无法使用你正在尝试的方法获得/ home-of-id.

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

如果您想要支持许多/ home /路径(因此您希望保持类级别定义),只需将/ home-of-{id}移动到单独的控制器即可可以做到这一点.

标签:spring,slash,request-mapping
来源: https://codeday.me/bug/20190518/1126229.html