如何queryparam
以真正宁静的方式在春天获得对宁静 Web 服务的支持......
例如我有如下网址
本地主机:8080/myapp/booksearch/title/{title}/author/{author}?sortby=relevance&year=2013
标题和作者我可以得到@PathVariable
.....
我想要 sortby 和 year 可选的地方..
如何queryparam
以真正宁静的方式在春天获得对宁静 Web 服务的支持......
例如我有如下网址
本地主机:8080/myapp/booksearch/title/{title}/author/{author}?sortby=relevance&year=2013
标题和作者我可以得到@PathVariable
.....
我想要 sortby 和 year 可选的地方..
您可以@RequestParam
在方法参数上使用注释
@RequestMapping (...)
public String getBooks(@RequestParam(required = false, value = "sortby") String sortBy, @RequestParam(required = false, value = "year") String year) {...}
如果未提供请求参数,@RequestParam
注释还具有defaultValue
用作值的属性。没有它,如果未提供参数,null
将作为该参数的参数传递。
为了获得更好的订单,您可以使用 Swagger,顺便说一下,它还可以让您记录您的端点。
您可以使用 Class 对您的 queryParams 进行分组并将其作为 Controller 方法的参数传递,如下所示:
@RequestMapping("/books")
public String getbBoks(MyParams params) {...}
为了描述参数,你只需要这样做:
@ApiModel
public class MyParams {
@ApiParam(
name = "sortby",
type = "string",
required = false
)
private String sortby;
@ApiParam(
name = "year",
example = "2017 , 2016",
type = "integer",
required = false
)
private int year;
}
Spring 注解 @RequestParam 用于获取查询参数,而 @PathVariable 用于获取路径或 url 中用大括号声明的变量,如localhost:8080/myapp/booksearch/title/{title}
.
因此,在您的情况下,您需要 @RequestParam 来获取 sortedBy 和 year 值。你可以简单地写public String getBooks(@RequestParam("sortby") String sortBy)