【发布时间】:2016-06-06 11:34:26
【问题描述】:
我正在寻找一种简单的方法来检查我的参数中的某些类型。如果它们存在,它们应该具有某种类型,否则它们应该具有默认值。如果它们存在并且它们的类型错误,则应该抛出异常。
之后将值放在方便的容器中会很好。因此,我尝试将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。
【问题讨论】:
标签: grails data-binding grails-3.0