【问题标题】:How can I bean-validate on a char?如何对 char 进行 bean 验证?
【发布时间】:2018-11-14 01:26:05
【问题描述】:

我刚刚发现@Pattern 可能(仅)与CharSequences 一起使用。

如何验证单个字符?

//@Pattern(regex = "[YN]") // @@?
private char someYn; // 'Y' or 'N'

它会混合吗?

不能使用AttributeConverter

哦,一个char也是一个CharSequence吗?

【问题讨论】:

  • @Pattern(regexp = "^[Y|N]{1}$", message ="Must be Y or N") 试试这个。你不能将@Pattern 用于字符变量,你会获取异常
  • @GauravRai1512 {1} 部分是否必要?无论如何,我不是在问regex,谢谢。
  • 是的,{1} 是匹配任何字符所必需的。
  • @GauravRai1512 这不是真的。 {1} 完全是多余的。

标签: java bean-validation


【解决方案1】:

您可以编写自己的 ConstraintValidator:

https://docs.oracle.com/javaee/7/api/javax/validation/ConstraintValidator.html

您可以在哪里提供注释和验证类型 您可以为其定义逻辑 然后你可以用你的自定义注释来注释你的字段

这里是制作步骤的链接:

https://dzone.com/articles/create-your-own-constraint-with-bean-validation-20

根据 javax 验证文档:

@Pattern(regex=, flag=) 字符串。

HV 还支持:CharSequence 的任何子类型。

检查带注释的字符串是否与考虑给定标志的正则表达式正则表达式匹配

所以实际上使用 @Pattern 的 Character 你会得到错误

谢谢

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-12
  • 1970-01-01
  • 1970-01-01
  • 2011-01-31
  • 1970-01-01
相关资源
最近更新 更多