问题
页面
<a href="${pageContext.request.contextPath}/book/jump/updateBook/${book.bookID}">修改</a>
<a class="btn btn-primary" href="${pageContext.request.contextPath}/book/jump/addBook">新增书籍</a>
- 这里想跳转两个页面,修改页面
需要传id, 新增页面不需要
controller
@RequestMapping("/jump/{page}/{id}")
public String jumpPage(@PathVariable String page,@PathVariable Integer id, Model model){
}
- 这种方式修改页面没问题, 新增页面没有传id就报404了
解决
@RequestMapping(value = {"/jump/{page}","/jump/{page}/{id}"})//id可以为空
public String jumpPage(@PathVariable String page,@PathVariable(required = false) Integer id, Model model){
}
- 可以为空的参数添加
@PathVariable(required = false) - RequestMapping修改
@RequestMapping(value = {"/jump/{page}","/jump/{page}/{id}"})
小结:
- 参数为空时取
"/jump/{page}" - 参数有值取
/jump/{page}/{id} - 二选一, 参数有值时取有参数的url, 否则取没有参数的url

本文探讨了如何在Spring MVC中处理不同场景下的URL映射,包括带ID参数的修改操作和无ID的新增操作。通过修改@RequestMapping注解,实现URL路径灵活匹配,解决了参数缺失导致的404问题。
6427

被折叠的 条评论
为什么被折叠?



