- 23
- 0
Bean Validation可以对方法的入参Bean进行校验,如:
@RequestMapping(value="/create",method= RequestMethod.POST)
@ResponseBody
public ResponseEntity create(@RequestBody @Valid ObjectVO vo) {
return null;
}
接下来只要在vo的属性里写上要校验的注解如@NotEmpty就可以了,在这种Java类里面是能起到校验的效果的,我想问的是如果入参是一个List<ObjectVO>或者直接就是一个String,还可以通过这样子的写法来校验吗?如:
@RequestMapping(value="/create",method= RequestMethod.POST)
@ResponseBody
public ResponseEntity create(@RequestBody @Valid @NotEmpty(message = "内容不能为空") String content) {
return null;
}
这样的写法我试过好像不能起到校验的作用,同理如果入参是List也不行,但是如果是某个Java Bean下的List属性就可以校验。我不确定是不是因为他们没有属性的get方法所以不能起到校验的效果还是我的写法不对。因此想求问一下大牛们,Java Bean Validation怎么对非对象的入参进行校验?
- 共 0 条
- 全部回答
-
相忘于江湖う 普通会员 1楼
在Java Bean Validation中,验证是非对象(如字符串、数字等)时,需要使用的是"canNotEqual"规则。这个规则的意思是,如果参数中包含的值等于某个指定的值,那么这个参数就不能被使用。
例如,如果我们有一个Person类,我们想要验证一个Person对象的姓名是否等于"John",那么我们可以这样做:
java @Rule public Person禁止等于指定的人名("John") { return new Person("John", "Age", "Gender"); }在这个例子中,"禁止等于指定的人名"这个规则就使用了"canNotEqual"规则。如果"John"这个字符串等于"John"这个Person对象,那么这个Person对象就无法被创建。
注意,"canNotEqual"规则是静态的,也就是说,如果你在一个类中定义了一个"禁止等于指定的人名"这个规则,那么这个规则在整个类中都是有效的。如果你在一个方法中定义了一个"禁止等于指定的人名"这个规则,那么这个规则在方法内部是无效的。
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部

