关于 Java 开发中的 validation 框架,有人解答一下么

2018-11-14 11:42:10 +08:00
 liuhuansir

1、在表单实体类上加注解完成简单的参数校验,如果某个参数是非必填,但是填了又得校验格式,比如手机号码,那注解如何写呢?

2565 次点击
所在节点    Java
7 条回复
lihongjie0209
2018-11-14 12:42:53 +08:00
校验和非空在 hibernate validation 中的是两个概念.

@Phone
private string phone;

表示可以为空, 如果不为空那就必须是电话格式



@NotEmpty
@Phone
private string phone;


表示不能为空, 且必须是电话格式
luzhen1012
2018-11-14 12:42:55 +08:00
正则试一试
chocotan
2018-11-14 13:04:32 +08:00
写个 private 方法,自己写校验逻辑,加 @AssertTrue 注解
x66
2018-11-14 13:07:50 +08:00
Spring MVC Validator
liuhuansir
2018-11-14 14:02:58 +08:00
@lihongjie0209 刚试了下,确实是这样,就是不懂为啥 @Pattern 这个不做成 @email 这样的,只有在非空情况下才去匹配,虽然用正则也可以匹配空,但是这样的话,正则表达式没法复用了
Honwhy
2018-11-14 14:06:54 +08:00
有个 oval 可以试试,
[根据 xml 配置校验 bean]( https://segmentfault.com/a/1190000014454887)
lihongjie0209
2018-11-14 16:38:18 +08:00
@liuhuansir 可以的, 我之前写了一个, 大概逻辑的就是:


https://gist.github.com/lihongjie0209/1eeb494453831edd1d7685df227c57ed

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/507695

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX