V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
liuhuansir
V2EX  ›  Java

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

  •  
  •   liuhuansir · 2018-11-14 11:42:10 +08:00 · 2727 次点击
    这是一个创建于 2208 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    7 条回复    2018-11-14 16:38:18 +08:00
    lihongjie0209
        1
    lihongjie0209  
       2018-11-14 12:42:53 +08:00
    校验和非空在 hibernate validation 中的是两个概念.

    @Phone
    private string phone;

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



    @NotEmpty
    @Phone
    private string phone;


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


    https://gist.github.com/lihongjie0209/1eeb494453831edd1d7685df227c57ed
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2723 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 05:30 · PVG 13:30 · LAX 21:30 · JFK 00:30
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.