如何检查数字输入是不是为空?
Posted
技术标签:
【中文标题】如何检查数字输入是不是为空?【英文标题】:How can I check if a number input is not empty?如何检查数字输入是否为空? 【发布时间】:2021-09-14 08:48:47 【问题描述】:我在使用 Spring Boot 验证器验证的表单中有这个输入字段:
<input class="form-control" th:field="*numericField"
type="number" min="0" id="numeric_field_input">
有效范围是所有正数。但即使我不填写任何数字,该字段也会生效。我相信默认值为零。添加类似的东西
th:default="-1"
没有解决问题。如何在服务器端检查用户输入的任何值?
编辑:这些是我当前对该字段的注释:
@Positive(message = "validation.numericField.positive")
@ColumnDefault("0")
private Integer numericField;
编辑 2: 这是我修复它的最后方法:
@NotNull(message = "validation.numericField.positive")
@Positive(message = "validation.numericField.positive")
private Integer numericField;
【问题讨论】:
检查是否有值。 -1 是一个数值,所以它可能是一个有效的输入。如果您正在检查 Java,并且正在处理对象,则可以进行空检查 如何使用验证注释进行检查或需要更改什么? 是tomcat吗?因为我记得tomcat有一些关于不能正确处理空数值的老问题(我不记得它到底是什么,但我记得那是很多年前的事了)在服务器jvm中添加了一些神奇的键值对配置 【参考方案1】:您可以使用min
约束来限制值只能是正数
//import javax.validation.constraints.Min;
@Min(value = 0, message = "numericField not be negative")
private Integer numericField;
【讨论】:
【参考方案2】:您可以使用这两种验证方式
@NotNull("message": "numericField: positive number value is required")
@Min(value=0, message="numericField: positive number, min 0 is required")
【讨论】:
太棒了!我使用了仅适用于字符串的@NotEmpty。 @NotNull 是正确的。也许您想将您的帖子更改为:@NotNull(message="numericField: positive number value is required")
这对我有用。以上是关于如何检查数字输入是不是为空?的主要内容,如果未能解决你的问题,请参考以下文章