关于课程中的写法

关于课程中的写法

@GetMapping("/book/{id}")
public ModelAndView showDetail(@PathVariable("id") Long id){
Book book= bookService.selectById(id);
ModelAndView mav=new ModelAndView("/detail");
mav.addObject("book",book);
return mav;
}

这段中的/book/{id}  可以改为前端中的/book&id={book.id} 吗?

@PathViriable  的作用是什么?

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学你好,1、@PathVariable 是从一个URI模板里面来填充,也就是RESTful风格。如果url中的参数名和方法中的参数名相同,也可以省略不写,如果url中的参数名和方法中的参数名不同,必须使用@PathVariable 将其绑定,比如:url中的参数名是id,方法中的参数名是ids,则必须使用@PathVariable 将其绑定。

http://img1.sycdn.imooc.com//climg/60e269060905325504350074.jpg

    ​2、路径&id={参数}是前端中拼接参数的写法,在controller中并不能使用&来拼接参数。

祝学习愉快~

  • qq_慕神0589333 提问者 #1
    为什么会出现url中的参数名和方法中的参数名不同的这种情况?
    2021-07-05 12:27:10
  • 好帮手慕小班 回复 提问者 qq_慕神0589333 #2

    同学你好,有时候在前端中的参数会有下划线等内容,但是在controller中并没有下划线等内容,所以就会出现不一致的情况,所以会有@PathVariable来绑定参数的这种形式。

    祝学习愉快~

    2021-07-05 14:46:11
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师