考虑以下示例:
@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/