Я пытаюсь подтвердить выбор. Обычно я бы использовал inList, поскольку SELECT подразумевает фиксированное количество строк, но мне было интересно, есть ли что-то более элегантное. В этом случае у меня есть форма с входом SELECT со значениями 0-24, соответствующими следующим 24 месяцам.
В моем cmdObject у меня есть
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})
}
}
Я бы хотел использовать оператор range: 0..24, но из того, что я понимаю, диапазоны не относятся к строкам, сгенерированным формой.
Есть ли предпочтительный способ приведения / связывания входящей строки в int, чтобы я мог использовать диапазон: 0..24? Или есть другой способ справиться с этим?
Я мог бы сделать
inList: [ "0", "1", /* type them all out */, "24" ]
или напишите несколько более надежных пользовательских валидаторов, но мне интересно, есть ли более удачное решение / grails.
Спасибо.