2

皆さんこんにちは、私はgrailsの初心者です。コマンドオブジェクトを介してgspからコントローラーにフィールド値を渡しています。私のgspページには携帯電話番号と呼ばれるフィールドが1つあります.しかし、コマンドオブジェクトを介してそれにアクセスしようとすると、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 に答える