Я ищу простой способ проверить некоторые типы в моих параметрах. Если они существуют, они должны иметь определенный тип, в противном случае они должны иметь значение по умолчанию. Если они существуют и их тип неверен, должно быть сгенерировано исключение.
Было бы неплохо потом иметь значения в удобном контейнере. Поэтому я попытался передать params
конструктору контейнера и bindData
объекту-контейнеру. Ни то, ни другое не удается:
class ContainerClass {
Integer foo = 42;
}
class TestController {
def index(){
//doesn't throw, **even when params.foo = "2asdf3"**
ContainerClass meh = new ContainerClass();
bindData(meh, params);
println meh.foo //prints 42 when params.foo = "2asdf3"
// throws GroovyCastException: Cannot cast object '23' with class
// 'java.lang.String' to to class 'java.lang.Integer',
// **even when params.foo = "23"**
ContainerClass meh2 = new ContainerClass(params);
render "meh"
}
}
Я использую Grails 3, если это важно.