1

在 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

4

1 回答 1

0

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

于 2012-10-01T04:02:15.800 回答