2

大家好,我是grails的新手。我通过命令对象将字段值从 gsp 传递到控制器。在我的 gsp 页面上有一个名为 mobile number 的字段。但是当我要通过命令对象访问它时,它给了我 typeMismatch 的错误,即它不会将 98xxxxxxxx 之类的值从字符串转换为整数。在我的命令对象中,我已将其作为整数提到

 Integer mobile;

我在 gsp 上的代码是:

 <label for="mobile">Mobile</label>
 <input type="text" value="${cmd?.mobile}" title="" name="mobile" id="mobile" size="30" maxlength="10"/>

其中 cmd 是我的命令对象。

和控制器中的代码:

def addInstitute={InstituteCommand cmd->
   Address address=new Address();
   address.mobile=cmd.mobile;
}

它给了我 typeMismatch 错误。当我输入像 1111111111 这样的值时,它会保存它但是当我输入实际的手机号码时。它给了我 typeMismatch 错误。如何处理这种情况?

4

1 回答 1

6

那是因为整数值的范围是从 -2147483648 到 2147483647,而您的手机号码大于 9800000000(10 位)。您最好将其存储为字符串

String mobile;

这更有意义,因为您很可能不会对手机号码执行任何号码操作。它还允许您存储非数字电话代码,例如 +、-

于 2012-10-26T09:41:38.523 回答