问题
页面
<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