Spring中三个注解@PathVariable、@Param和@RequestParam间的区别
@PathVariable
代码示例:
1 2 3 4 | @ResponseBody @RequestMapping ( "/user/{uid}" ) public User getUserById( @PathVariable ( "uid" ) Long uid) { } |
特点:
1) 应用在Controller层
2) @PathVariable是spring3.0的一个新功能:可接收请求路径中占位符的值,通过 @PathVariable 可以将URL中占位符参数{uid}绑定到处理器类的方法形参uid中 —— @PathVariable(“uid“)
3) 请求路径中占位符的名字可与方法参数名不一样
@RequestParam
代码示例:
1 2 3 4 | @ResponseBody @RequestMapping (value = "/user/get" , method = RequestMethod.POST) public List<User> getUserList( @RequestParam ( "uid" ) Integer id, @RequestParam ( "uname" ) String name) { } |
特点:
1) @RequestParam主要应用在Controller层
2) 前端提交的form表单数据中的属性名和方法中的参数名不一致时 ,springMVC就无法自动封装参数,所以需要 @RequestParam("前端所传属性名") 来指定前端提交的表单的属性的名称
3) 前端提交的form表单数据中的属性名和方法中的参数名一致时,可以不使用此注解
@Param
代码示例:
1 2 | @Select ( "select * from user where uid = #{uid} and uname = #{uname}" ) List<User> getUserList( @Param ( "uid" ) Integer id, @Param ( "uname" ) String name); |
特点:
1) @Param主要应用在Dao层
2) 注解中的sql语句有多个条件参数,且和方法中的参数名称不一致,此时可以使用@Param注解
3) 只有一个参数时,可以不使用注解(不过还是建议使用= =)
4) 参数的顺序无关
参考:
https://blog.csdn.net/pengfudian1991/article/details/96336898
https://blog.csdn.net/qq_36268103/article/details/109994954
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
2015-07-26 python学习之路-书籍推荐