java @Vaild 可以用在对象上面作注解校验吗

发布于 2022-09-07 12:15:26 字数 1505 浏览 16 评论 0

public String save(@RequestBody @Valid Stad stad)
只有对象的时候是没问题的,现在保存对象的时候还有一个文件同时要上传上来,
因为对象封装json在data里面,我想再把json转成对象再校验可以吗

public String save(
            @RequestParam("data")String data,
            @RequestParam("file")MultipartFile file
    ) throws IOException {
        @Valid
        Stad stad = JSON.parseObject(data, Stad.class);
        ……
    }

或者

public String save(
            @RequestParam("data") @RequestBody @Valid Stad stad,
            @RequestParam("file")MultipartFile file
    )

前台

<form id="stad" action="/save" method="post" enctype="multipart/form-data">
    <p><input type="file" name="file"/></p>
    <p><input type="text" name="name" placeholder="name"></p>
    <p><input type="text" name="addr" placeholder="addr"></p>
    <p><input type="text" name="router" placeholder="router"></p>
    <p><input type="text" name="url" placeholder="url"></p>
    <p><button type="submit">提交</button></p>
</form>

非常感谢 @驰星周 提供的方法

最后解决方法
多添加了一个对属性的注解验证,只验证实体的时候没有验证,而加上对其中一个属性的验证,实体验证就会起作用了,可能是我哪里写的不对,暂时曲线救国

public String save(
            @RequestParam("file")MultipartFile file,
            @Valid Stad stad,
            @Valid @NotNull String name
    )

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

无声无音无过去 2022-09-14 12:15:26

直接

public String save(
            @RequestParam("file")MultipartFile file,@Valid Stad stad,BindingResult result
    )

就可以校验了,表单提交或者ajax上传都可以,不用json转换。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文