数据绑定grails中的奇怪

时间:2012-09-27 22:03:49

标签: grails

在grails中我试图将数据绑定到命令对象,但是我遇到了一个奇怪的问题,其中字符串后缀会自动(静默地)从数字中删除。例如:

class MyCommand {
    int myInt
}
def test = {
    def cmd = new MyCommand()
    def myMap = [myInt:"123asdf"]
    bindData(cmd, myMap)
    boolean errors = cmd.hasErrors()
    render errors
}

这将呈现false,myInt将设置为123。 但是,如果我尝试将myInt设置为“asdf123”,cmd.hasErrors()将返回true。

为什么会这样?是否有不同的方法将数据绑定到将处理此问题的对象。 在这篇文章中讨论了同样的问题,但没有提供任何解决方案:http://grails.1312388.n4.nabble.com/Data-binding-with-numbers-is-this-expected-td2073860.html

1 个答案:

答案 0 :(得分:0)

我不确定这是你想要的答案,但是,我认为这就是你所需要的。我已经对此做了很多研究,在我看来,数据绑定并不总是(提示永远不会)返回用户在处理无效数字时输入的确切数据。经过大量研究,我给你的建议是将文本转换为带有try catch的整数,如果失败,则将其设置为null。然后将参数传递回视图。如果值为null,则从params获取值。