获取一个变量的多个RequestParam
Get multiple RequestParam of one variable
我正在尝试使用 MongoTemplate、Query 和 Criteria 构建多功能搜索方法。
这是我用于变量搜索的 RequestMapping:
public Page<Users>getUsers(
@RequestParam(value = "name", required = false)
String name) {
Query query = new Query();
Criteria criteria = new Criteria();
criteria = criteria.where("name").regex(".*" + name + ".*","i");
query.addCriteria(criteria);
我希望能够使用多个请求参数搜索 lastName
。例如,我想找到姓氏为“Smith”和“Johnson”的所有人。
像这样:
@RequestParam(value = "lastName", required = false) List<String> lastName) {
Query query = new Query();
Criteria criteria = new Criteria();
criteria = criteria.where("lastName").regex(do something different..);
query.addCriteria(criteria);
URL 将是:http://localhost:8080/get?lastName=Smith&lastName=Johnson
这是我找到映射多值参数 https://www.baeldung.com/spring-request-param 的地方,但不清楚它究竟是如何工作的。如果有人可以提供 link 和完整的示例(存储库、处理程序和其他东西),请提供。
我是这样做的:
if (CollectionUtils.isNotEmpty(lastName)) {
Criteria lastNameCriteria = new Criteria();
lastNameCriteria = lastNameCriteria.where("lastName").in(lastName.toArray());
criterias.add(lastNameCriteria);
}
你最后提到的那篇文章对你的问题有准确的回答:
A single @RequestParam can have multiple values:
@GetMapping("/api/foos") @ResponseBody public String
> getFoos(@RequestParam List<String> id) {
> return "IDs are " + id; }
并且Spring MVC 将映射一个以逗号分隔的 id 参数:
http://localhost:8080/spring-mvc-basics/api/foos?id=1,2,3
---- IDs are [1,2,3] or a list of separate id parameters:
http://localhost:8080/spring-mvc-basics/api/foos?id=1&id=2
---- IDs are [1,2]
我正在尝试使用 MongoTemplate、Query 和 Criteria 构建多功能搜索方法。
这是我用于变量搜索的 RequestMapping:
public Page<Users>getUsers(
@RequestParam(value = "name", required = false)
String name) {
Query query = new Query();
Criteria criteria = new Criteria();
criteria = criteria.where("name").regex(".*" + name + ".*","i");
query.addCriteria(criteria);
我希望能够使用多个请求参数搜索 lastName
。例如,我想找到姓氏为“Smith”和“Johnson”的所有人。
像这样:
@RequestParam(value = "lastName", required = false) List<String> lastName) {
Query query = new Query();
Criteria criteria = new Criteria();
criteria = criteria.where("lastName").regex(do something different..);
query.addCriteria(criteria);
URL 将是:http://localhost:8080/get?lastName=Smith&lastName=Johnson
这是我找到映射多值参数 https://www.baeldung.com/spring-request-param 的地方,但不清楚它究竟是如何工作的。如果有人可以提供 link 和完整的示例(存储库、处理程序和其他东西),请提供。
我是这样做的:
if (CollectionUtils.isNotEmpty(lastName)) {
Criteria lastNameCriteria = new Criteria();
lastNameCriteria = lastNameCriteria.where("lastName").in(lastName.toArray());
criterias.add(lastNameCriteria);
}
你最后提到的那篇文章对你的问题有准确的回答:
A single @RequestParam can have multiple values:
@GetMapping("/api/foos") @ResponseBody public String
> getFoos(@RequestParam List<String> id) {
> return "IDs are " + id; }
并且Spring MVC 将映射一个以逗号分隔的 id 参数:
http://localhost:8080/spring-mvc-basics/api/foos?id=1,2,3 ---- IDs are [1,2,3] or a list of separate id parameters:
http://localhost:8080/spring-mvc-basics/api/foos?id=1&id=2 ---- IDs are [1,2]