Spring mvc解决list最大长度为256的限制

本文介绍了一种通过使用@InitBinder注解来初始化WebDataBinder的方法,并设置了好友数量的最大限制为3600个。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

添加

@InitBinder
public void initBinder(WebDataBinder binder) {
    binder.setAutoGrowCollectionLimit(3600); //最大支持3600个好友
}

就好 

### Spring MVC 参数校验方法及注解 #### 添加依赖 为了实现参数校验,在项目 `pom.xml` 文件中需引入 Hibernate Validator 依赖,这是 JSR-303 的一种具体实现方式[^5]。 ```xml <dependency> <groupId>org.hibernate.validator</groupId> <artifactId>hibernate-validator</artifactId> <version>8.0.0.Final</version> </dependency> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-validator-annotation-processor</artifactId> <version>8.0.0.Final</version> </dependency> ``` #### 启用全局校验功能 通过在控制器类上添加 `@Validated` 注解来开启全局级别的参数校验机制。此操作使得所有请求映射的方法都能自动触发输入数据的有效性检查过程[^2]。 ```java @RestController @RequestMapping("/") @Validated public class UserController { } ``` #### 定义实体并设置约束条件 针对需要被检验的数据模型对象(DTO),利用 Java 验证框架提供的标准注解标记字段属性上的规则说明。例如: - `@NotNull`: 字符串不能为空; - `@Size(min=, max=)`: 指定字符串长度范围; - `@Min(value)` 和 `@Max(value)`: 数字类型的最小最大值限制; - `@Email`: 表明该字段应遵循电子邮件地址格式; 对于更复杂的场景,则可以通过自定义正则表达式的 `@Pattern(regexp="")` 来满足特定模式匹配需求[^4]。 ```java import javax.validation.constraints.*; class UserDTO { @NotNull(message = "用户名不可为空") private String username; @Email(message = "邮箱格式不正确") private String email; @Pattern(regexp = "^\\d{11}$", message = "手机号码不符合规定") private String phone; // getter and setter methods... } ``` #### 控制器层接收与处理 最后一步是在 RESTful API 接口内部对接收到的 DTO 实例执行验证流程,并捕获可能发生的异常情况返回给客户端提示信息。通常情况下会配合着 `BindingResult` 或者直接抛出自定义错误响应体的形式完成反馈工作[^3]。 ```java @PostMapping("/register") public ResponseEntity<ObjectRestResponse> registerUser( @RequestBody @Validated UserDTO user, BindingResult bindingResult) throws Exception { if (bindingResult.hasErrors()) { List<String> errorMessages = new ArrayList<>(); for (FieldError fieldError : bindingResult.getFieldErrors()){ errorMessages.add(fieldError.getDefaultMessage()); } throw new ValidationException(errorMessages); } userService.save(user); return ResponseEntity.ok(new ObjectRestResponse().data("success")); } // 自定义异常处理器简化版示意代码如下: @ControllerAdvice public class GlobalExceptionHandler extends ResponseEntityExceptionHandler { @ExceptionHandler(ValidationException.class) protected ResponseEntity<Object> handleValidationError(ValidationException ex){ Map<String,Object> body=new HashMap<>(ex.getErrors().size()+1); body.put("errors",ex.getErrors()); return new ResponseEntity<>(body,HttpStatus.BAD_REQUEST); } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值