关于@Size不生效问题

首先确保你的pom.xml文件中添加了spring-boot-starter-validation依赖,以引入校验相关的类和功能(重点:不要引入其他如:validation-api、hibernate-validator依赖)。例如:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-validation</artifactId>
</dependency>

在Spring Boot中,可以使用javax.validation.constraints.Size注解来判断字段长度是否合法。以下是一个示例

public class MyRequest {
    @Size(max = 10, message = "字段长度不能超过10")
    private String field;

    // getter and setter
}

在Controller中,可以使用@Valid注解来验证请求对象的字段长度是否合法。如果字段长度超过了设定的最大长度,会抛出MethodArgumentNotValidException异常。你可以通过捕获该异常并处理来返回相应的错误信息。

@RestController
public class MyController {
    @PostMapping("/my-endpoint")
    public ResponseEntity<?> myEndpoint(@Valid @RequestBody MyRequest request) {
        // 处理请求
        return ResponseEntity.ok().build();
}

这样,当接收到请求时,会自动验证MyRequest对象的field字段长度是否超过10,如果超过,则会返回相应的错误信息。

当对象嵌套时,嵌套的对象添加@Valid注解后,嵌套的对象如果有@Size等注解也会一起效验:

public class MyRequest {
    @Size(max = 10, message = "字段长度不能超过10")
    private String field;

    // getter and setter
    //嵌套的对象添加@Valid注解后,嵌套的对象如果有@Size等注解也会一起效验
    @Valid
    private User user;
}

public class User{
    @Size(max = 10, message = "字段长度不能超过10")
    private String username;

    // getter and setter
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值