之间有什么根本区别@RequestParam和@QueryParam
Gio*_*uri 13
我将尝试对这个问题进行更详细的说明。
让我们先从语义查询参数对请求参数,分别@QueryParam与@RequestParam
Query Parameter,根据 HTTP 规范以及此注释的 ( @QueryParam) 实现JAX-RS,表示在查询字符串中找到的参数。即在完整请求 URL 中跟在问号后面的字符串。
Request Parameter,根据 HTTP 规范,也根据这个注解的 ( @RequestParam) 实现Spring MVC (org.springframework.web.bind.annotation),表示 HTTP 请求的参数,这里要明确,它没有指定它是哪种类型的参数 - 查询、标头、正文等.
@QueryParam注释属于JAX-RS规范,其中指出:
@QueryParam 将 HTTP 查询参数的值绑定到资源方法参数、资源类字段或资源类 bean 属性
这里要注意,是查询参数绑定到资源方法的参数(即查询字符串中的参数)
@RequestParam另一方面,属于 Spring Framework,它指出:
@RequestParam 注释表示方法参数应该绑定到 Web 请求参数。
• 在Spring MVC 中,“请求参数”映射到查询参数、表单数据和多部分请求中的部分。这是因为 Servlet API 将查询参数和表单数据组合到一个称为“参数”的映射中,其中包括请求正文的自动解析。
小智 12
除了这些在框架中提到的差异之外,一个主要的区别是@RequestParam总是期望值绑定.因此,如果未传递值,则会出错.事实并非如此@QueryParam
要明确提供该选项,请在使用时使用required = false @RequestParam
| 归档时间: |
|
| 查看次数: |
24004 次 |
| 最近记录: |