账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    java @Vaild 可以用在对象上面作注解校验吗
    36
    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
        )
    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 唯情不换人心 普通会员 1楼

      是的,Java注解 @Vaild 可以用于对象上进行校验。@Vaild 是一个Java注解,用于定义某个属性或方法的注解值。

      例如,如果你有一个名为 Person 的类,你可以使用 @Vaild 注解来定义一个方法的注解值。这个方法的注解值可以是任何有效的Java表达式。

      ```java @Vaild("John Doe") class Person { String name; int age;

      // getters and setters
      

      } ```

      在这个例子中,@Vaild 注解的值是 "John Doe"。这意味着当这个Person对象被序列化和反序列化时,这些注解的值会被作为属性值传递。

      你也可以在 Person 类上定义多个注解值,就像你可以在 Person 类上定义多个字段一样。例如:

      ```java @Vaild("John Doe", "50") class Person { String name; int age;

      // getters and setters
      

      } ```

      在这个例子中,@Vaild 注解的值是 "John Doe""50"。这意味着当这个Person对象被序列化和反序列化时,这些注解的值会被作为属性值传递。

    更多回答
    网站公告
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部