Home > Software design >  Get multiple RequestParam of one variable
Get multiple RequestParam of one variable

Time:01-18

I'm trying to build a multifunctional search method using MongoTemplate, Query and Criteria.

Here is my RequestMapping for variable search:

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);

I want to be able to search lastName with multiple request parameters. For example, I want to find everyone with lastname "Smith" and "Johnson".

Something like this:

@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 will be: http://localhost:8080/get?lastName=Smith&lastName=Johnson

This is where I found Mapping a Multi-Value Parameter https://www.baeldung.com/spring-request-param , but it is not clear how exactly does it work. If someone can provide a link with full example (repository, handler and stuff), please do.

CodePudding user response:

this is how i did it:

if (CollectionUtils.isNotEmpty(lastName)) {
        Criteria lastNameCriteria = new Criteria();
        lastNameCriteria = lastNameCriteria.where("lastName").in(lastName.toArray());
        criterias.add(lastNameCriteria);
    }

CodePudding user response:

In the article that you mentioned at the end there is a precise answer to your question:

A single @RequestParam can have multiple values:

@GetMapping("/api/foos") @ResponseBody public String
> getFoos(@RequestParam List<String> id) {
>     return "IDs are "   id; }

And Spring MVC will map a comma-delimited id parameter:

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]

  •  Tags:  
  • Related