@Validated未生效

来源:2-2 验证HTTP Body中的参数与级联校验

慕圣2813975

2020-07-28 09:59:51

import com.toppower.missyou.dto.PersonDTO;
import com.toppower.missyou.sample.ISkill;
import org.hibernate.validator.constraints.Range;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;

@RestController
@RequestMapping("/banner")
@Validated
public class BannerController {
    @Autowired
    private ISkill iSkill;

    @PostMapping("/test/{id}")
    public PersonDTO test(
            @PathVariable @Range(min = 1, max = 10, message = "不可以超过10嗷") Integer id,
            @RequestParam String name,
            @RequestBody @Validated PersonDTO person
    ) {

        iSkill.r();

        PersonDTO dto = PersonDTO.builder()
                .name("222")
                .age(111)
                .build();
        return dto;
    }
import lombok.*;
import org.hibernate.validator.constraints.Length;

@Builder
@Getter
//@Setter
public class PersonDTO {
    @Length(min = 2,max = 10,message = "xxxx")
    private String name;
    private Integer age;

}

之前有个同学说的test私有方法,检查后我的方法是公共的,不知道为何没有生效,网上这个也找不到答案,老师能否看看是什么问题

写回答

1回答

慕圣2813975

提问者

2020-07-28

刚刚尝试出来在DTO下面追加@setter就可以正常报错了 不是很理解这边的原理是什么呢 在老师视频里面是没有加setter的

0

Java全栈工程师

从Java到全栈,开发带SKU的真实企业级电商项目(附赠整套UI框架,配套升级Vue3.0内容)

2067 学习 · 3050 问题

查看课程