SpringMvc recibe parámetros de lista y matriz (@RequestParam, @PathVariable)

prefacio

Hace un tiempo, vi que mi amigo usaba cadenas para recibir parámetros y luego los separaba en arreglos con comas y luego los convertía en LIST:

@DeleteMapping("/{ids}")
public String delete(@PathVariable String ids) {
    
    
	List<String> idLis = Arrays.asList(ids.split(","));
	....
}

Los códigos de conversión mencionados anteriormente existen en grandes cantidades en el proyecto, lo que no es muy elegante,
por lo que se recomienda a los amigos que utilicen directamente el mecanismo de conversión de parámetros Array and List que viene con Spring MVC de la siguiente manera.

Parámetros de la lista de recepción

El código de ejemplo es el siguiente:

Nota: para el formato de solicitud específico, consulte las notas sobre el método del controlador

@RestController
@RequestMapping("/api/v1/tests")
@Slf4j
public class RestParamsTestController {
    
    

	//请求格式1:curl -X GET "http://localhost:8080/api/v1/tests/list?ids=1,2,3"
	//请求格式2:curl -X GET "http://localhost:8080/api/v1/tests/list?ids=1&ids=2&ids=3"
    @GetMapping("/list")
    public String getByList(@RequestParam(required = true) List<String> ids) {
    
    
        String paramJson = JsonUtils.toJson(ids);
        log.info("getByList: {}", paramJson);
        return paramJson;
    }
    
    //请求格式1:curl -X POST "http://localhost:8080/api/v1/tests/list" -H "Content-Type: application/x-www-form-urlencoded" --data-urlencode "ids=1,2,3"
	//请求格式2:curl -X POST "http://localhost:8080/api/v1/tests/list" -H "Content-Type: application/x-www-form-urlencoded" --data-urlencode "ids=1" --data-urlencode "ids=2" --data-urlencode "ids=3"
    @PostMapping("/list")
    public String postByList(ParamListDto dto) {
    
    
        String paramJson = JsonUtils.toJson(dto);
        log.info("postByList: {}", paramJson);
        return paramJson;
    }

    //请求格式:curl -X DELETE "http://localhost:8080/api/v1/tests/list/1,2,3"
    @DeleteMapping("/list/{ids}")
    public String deleteByList(@PathVariable(required = true) List<String> ids) {
    
    
        String paramJson = JsonUtils.toJson(ids);
        log.info("deleteByList: {}", paramJson);
        return paramJson;
    }
}

---
@Data
public class ParamListDto {
    
    
    private List<String> ids;

}

Parámetro de matriz de recepción

El código de ejemplo es el siguiente:

Nota: para el formato de solicitud específico, consulte las notas sobre el método del controlador

@RestController
@RequestMapping("/api/v1/tests")
@Slf4j
public class RestParamsTestController {
    
    
	//请求格式1:curl -X GET "http://localhost:8080/api/v1/tests/array?ids=1,2,3"
	//请求格式2:curl -X GET "http://localhost:8080/api/v1/tests/array?ids=1&ids=2&ids=3"
    @GetMapping("/array")
    public String getByArray(@RequestParam(required = true) String[] ids) {
    
    
        String paramJson = JsonUtils.toJson(ids);
        log.info("getByArray: {}", paramJson);
        return paramJson;
    }
    
    //请求格式1:curl -X POST "http://localhost:8080/api/v1/tests/array" -H "Content-Type: application/x-www-form-urlencoded" --data-urlencode "ids=1,2,3"
	//请求格式2:curl -X POST "http://localhost:8080/api/v1/tests/array" -H "Content-Type: application/x-www-form-urlencoded" --data-urlencode "ids=1" --data-urlencode "ids=2" --data-urlencode "ids=3"
    @PostMapping("/array")
    public String postByArray(ParamArrayDto dto) {
    
    
        String paramJson = JsonUtils.toJson(dto);
        log.info("postByArray: {}", paramJson);
        return paramJson;
    }

    //请求格式:curl -X DELETE "http://localhost:8080/api/v1/tests/array/1,2,3"
    @DeleteMapping("/array/{ids}")
    public String deleteByArray(@PathVariable(required = true) String[] ids) {
    
    
        String paramJson = JsonUtils.toJson(ids);
        log.info("deleteByArray: {}", paramJson);
        return paramJson;
    }
}

---
@Data
public class ParamArrayDto {
    
    
    private String[] ids;

}


Referencia:
https://www.baeldung.com/postman-form-data-raw-x-www-form-urlencoded
@RequestParam y @PathVariable pasar matriz, experimento de parámetro de tipo de matriz json

Supongo que te gusta

Origin blog.csdn.net/luo15242208310/article/details/129852525
Recomendado
Clasificación