有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Spring MVC@PathVariable列表输入javax最大大小验证

SpringBoot-RESTAPI下的SpringMVC项目

@GetMapping(value = "bulk/{speakerIds}")
@ResponseStatus(HttpStatus.MULTI_STATUS)
@Operation(summary = "Gets Speakers to a max Limit of 10")
public Map<Long, Object> getMasterClassBulk(@PathVariable List<Long> speakerIds) {

    return speakerHandler.getSpeakers(speakerIds);

}

是否有方法添加列表最大大小验证? 例如:当输入列表超过大小10时,抛出404错误请求

尝试了下面的代码,但不起作用

@PathVariable @Size(max=10) List<Long> speakerIds

共 (2) 个答案

  1. # 1 楼答案

    尝试使用@Validated初始化类,并在方法参数上尝试以下操作:

    @Valid @PathVariable @Size(max=10) List<Long> speakerIds
    
  2. # 2 楼答案

    是否有方法添加列表最大大小验证?当输入列表超过大小10时,抛出404错误请求

    如果这是你的问题,你可以使用

    public Map<Long, Object> getMasterClassBulk(@PathVariable List<Long> speakerIds) {
        
        if(speakerIds.size()>10)
          throw new BadRequestException("Length too long");
    
        return speakerHandler.getSpeakers(speakerIds);
    
    }
    

    创建BadRequestException类,如下所示:

    @ResponseStatus(HttpStatus.BAD_REQUEST)  
    public class BadRequestException extends RuntimeException   
    {  
    public BadRequestException(String message)   
    {  
    super(message);  
    }  
    }