get 请求把查询条件放在 url 上
- 现有功能,要求在前端传递一个 id 给后端,有下述两种情况加以区分:
(/xxx/addYyy?id=${data})
(/xxx/addYyy/${data})
前端请求:(/xxx/addYyy?id=${data})
- 这种
id
是作为查询参数(query parameter)传递的。查询参数附加在 URL 的路径之后,以问号(?
)开始,后面跟着参数名和参数值的键值对,多个参数之间用&
分隔。在这种方式中,即使后端没有定义@RequestParam
来接收这个参数,大多数 Web 服务器和框架也会默认解析查询参数 - 在这种情况下,路径始终是
/finance/addFinance
- 这时后端
@RequestParam("id") String id
前端请求:(/xxx/addYyy/${data})
- 这种写法中,
${data}
是一个路径变量(path variable)的占位符。路径变量是 URL 路径的一部分,它们被用来动态地构建 URL。在 Spring MVC 中,路径变量通过@PathVariable
注解来捕获 - 这时,路径会根据
data
的值动态变化,id
作为路径的一部分 - 这时后端
@PathVariable("id") String id