我现在开始学习spring boot,以及如何在类的字段中使用内置验证工具(anotation)。我知道如何验证字符串并将字段设置为@NotNull,但找不到任何方法对数值进行同样的操作。我曾考虑过使用@pattern作为regex,但希望有更清晰(更容易)的东西可以使用。
我不想设置@min或@max。它应该能够使用所有可能的数值int值。
当前代码,我想在这里设置zipCode(最后一个字段)处的符号
@Entity
public class Customer {
@Id
private int id;
@NotNull
@Size(min=2,max=15)
private String firstName;
@NotNull
@Size(min=2,max=15)
private String lastName;
@NotNull
@Size(min=5,max=45)
private String address;
@NotNull
@Size(min=1,max=15)
private String driversLicense;
@NotNull
@Size(min=1, max=3)
private String licensesType;
@NotNull
@Size(min=1,max=30)
private String phone;
@NotNull
@Size(min=1,max=15)
private String nationality;
@NotNull
@Size(min=1,max=30)
private String city;
@NotNull
private int zipCode;
使用@NotNull表示法,我得到的错误消息是
Failed to convert property value of type java.lang.String to required type int for property zipCode;
nested exception is java.lang.NumberFormatException: For input string:"xx"
并希望它是一个普通的错误消息,但当我这样做时
@NotNull(message="Custom error message")
private int zipCode
我仍然得到上面的错误消息。
任何解决这两个问题的想法,将非常感谢
编辑:没有意识到这个问题只能有一个“批准”的答案。因为这是两个问题合二为一,@pankaj和@jargente都提供了很好的答案
您遇到的问题是,这个错误是在验证之前产生的,在反序列化阶段,我的意思是首先spring尝试将输入json转换为您在类中指定的类型,然后验证输入以确保约束是完全填充的(例如,一个字符串在大小指定的边界之间...等等)。
因此,自定义所需消息的方法是创建一个自定义的反序列化程序,或者将该属性标记为字符串,然后检查它是否存储了有效的数字,如果没有,则使用自定义消息。
您可以将@positive
注释用作
@Positive
private int zipCode;
来自@positive
的文档
带注释的元素必须是严格的正数(即0被视为无效值)。支持的类型有:
空元素被认为是有效的。
我的Java应用程序“A”正在从另一个Java应用程序获取移动电话号码作为字符串。因此,在应用程序A获得手机号码字符串后,我需要验证该手机号码字符串中是否只有数字。为了验证我使用了如下的简单逻辑, 我正在检查I=1,因为国家代码的第一个字符将是“”。这种方法是O(n)。还有另一种方法,我们可以使用。这将抛出<代码> No.MultFrimeExtry,以便我们可以捕获并考虑它是一个字母数字字符串。
我正在分析SonarQube 5.1版的Java SE 7项目。 然后,我在下面的代码中面对squid:S1948。 “可序列化”类中的字段应该是瞬态的或可序列化的 Serializable类中的字段本身必须是可序列化的或瞬态的,即使该类从未显式序列化或反序列化。这是因为在负载下,大多数J2EE应用程序框架都会将对象刷新到磁盘,并且具有非瞬态、不可序列化数据成员的所谓可序列化对象可能会导致程序崩溃
我知道很多人问过相关的问题,但请帮我解决。我试图复制一个我在网上找到的开源温度控制实验室。我想在树莓皮上运行它。这就是我一直遇到的错误: 生成它的代码如下所示: 我相信这段代码试图通过以下代码与另一个python文件通信: 我还不知道我周围的python代码,所以一个非常清晰的“虚拟类”解决方案的解释会很有帮助。谢谢伙计们。
运行此代码时 我得到这个错误 read_bikeins=pdf。PdfFileReader(bikeins)回溯(最近一次呼叫最后一次): 文件“”,第1行,以read\u bikeins=pdf格式。PdfFileReader(比基恩) 文件“C:\Users\Naveen Raj\Anaconda3\lib\site packages\PyPDF2\pdf.py”,第1084行,在init s
问题内容: 我想要最简单的故障安全测试来检查JavaScript中的字符串是否为正整数。 对于各种非整数值返回true,并且为浮点字符串返回整数,例如“ 2.5”。而且我也不想使用某些jQuery插件。 问题答案: 为您提供两个答案: 基于解析 正则表达式 请注意,在两种情况下,我都将“正整数”解释为包括,即使它不是正数。如果您不愿意,我会提供注释。 基于解析 如果希望它是在合理值范围内的归一化十
我想要最简单的故障安全测试来检查JavaScript中的字符串是否为正整数。 为所有类型的非整数值返回true,为浮点字符串返回整数,如“2.5”。我也不想使用jQuery插件。