Grails将字符串验证为整数范围的最佳实践
我正在尝试验证一个SELECT。通常我会使用一个inList,因为SELECT意味着一个固定数量的字符串,但我想知道是否有更优雅的东西。在本例中,我有一个带有SELECT输入的表单,其值为0-24 as,对应于接下来的24个月 在我的cmdObject中,我有Grails将字符串验证为整数范围的最佳实践,grails,validation,range,Grails,Validation,Range,我正在尝试验证一个SELECT。通常我会使用一个inList,因为SELECT意味着一个固定数量的字符串,但我想知道是否有更优雅的东西。在本例中,我有一个带有SELECT输入的表单,其值为0-24 as,对应于接下来的24个月 在我的cmdObject中,我有 class FormCommand { String startSlot static constraints = { // startSlot(nullable:false, blank:false, range
class FormCommand {
String startSlot
static constraints = {
// startSlot(nullable:false, blank:false, range:0..24)
startSlot(nullable:false, blank:false,
validator: { val, obj -> val.toInteger() < 25})
}
}
或者编写一些更健壮的自定义验证器,但我想知道是否有一个更groovy/grails的解决方案
谢谢。您可以使用带字符串的范围,例如
class FormCommand {
Integer startSlot
static constraints = {
startSlot(nullable: false, size: 0..24)
}
}
class FormCommand {
String startSlot
static constraints = {
startSlot(nullable: false, size: '0'..'24')
}
}
您可以将范围与字符串一起使用,例如
class FormCommand {
String startSlot
static constraints = {
startSlot(nullable: false, size: '0'..'24')
}
}
我会用射程。见文件
我认为大小是指字符串,更像是长度,我会使用范围。见文件
我认为大小是指字符串,更像是一个长度问题。最终的答案包括以下建议:
class FormCommand {
Integer startSlot
static constraints = {
startSlot(nullable: false, range: 0 .. 24)
}
}
当()上的文档说它可以用在任何具有下一个/上一个属性的东西上时,我很反感。我不知道只需将字段指定为整数,就可以将param.startSlot隐式转换为整数
谢谢 最终的答案包括以下建议:
class FormCommand {
Integer startSlot
static constraints = {
startSlot(nullable: false, range: 0 .. 24)
}
}
当()上的文档说它可以用在任何具有下一个/上一个属性的东西上时,我很反感。我不知道只需将字段指定为整数,就可以将param.startSlot隐式转换为整数
谢谢 最终解决方案是
code
最终解决方案是code
同意的,大小不是正确的方法,但范围是正确的同意,大小不是正确的方法,但范围是正确的。这与我最终使用的最接近。我想发布最终结果。这与我最终使用的最接近。我想发布最终结果。你能解释一下吗,也许是参考文档?你能解释一下吗,也许是参考文档?这是“这里的建议组合”吗?忽略空格,这和我的答案是一样的。我忘了我为什么这么说了。也许其他人删除了我的评论和/或帖子。将答案重新分配给您。这是“这里的建议组合”吗?忽略空格,这和我的答案是一样的。我忘了我为什么这么说了。也许其他人删除了我的评论和/或帖子。把答案重新分配给你。