请考虑以下示例:
@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}移动到单独的控制器即可可以做到这一点.