gpt4 book ai didi

Grails GORM 整数验证

转载 作者:行者123 更新时间:2023-12-02 13:49:18 26 4
gpt4 key购买 nike

环境:Grails 2.0.4,Java 1.6.0

我想对需要整数值的域对象值施加约束,以防止输入小数值。在 View 中输入 3.3 会导致创建值为 3 的对象。我希望出现一个验证错误,该错误会被踢回给用户,指示只有整数值是有效的。

class ADomainObject {
Integer anInteger
}

Controller

def save() {
// Note: params["anInteger"] = "3.3"

ADomainObject aDomainObject = new ADomainObject(params)
aDomainObject.save flush:true
}

导致持久化aDomainObject.anInteger = 3

导致失败需要什么类型的约束?我已尝试使用范围约束 [0..1000],但无济于事。

最佳答案

您可以为 Integers 注册自定义属性编辑器以仅允许严格的整数值。以下将适用于绑定(bind)所有整数。

class IntegerEditor extends java.beans.PropertyEditorSupport {
void setAsText(String text) {
value = Integer.parseInt(text)
}
}

class CustomPropertyEditorRegistrar implements org.springframework.beans.PropertyEditorRegistrar {
void registerCustomEditors(org.springframework.beans.PropertyEditorRegistry registry) {
registry.registerCustomEditor(Integer, new IntegerEditor())
}
}

然后在 resources.groovy 中:

beans = {
customPropertyEditorRegistrar(CustomPropertyEditorRegistrar)
}

关于Grails GORM 整数验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12681441/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com