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