現在、Grails アプリケーションに取り組んでおり、ドメイン モデル内のオブジェクトに対して表示されるデフォルトのエラー メッセージを変更したいと考えています。私はすべて正しいことをしたと信じていますが、誰かがこの問題を解決するのを手伝ってくれるかもしれません.以下のコード:
ドメイン モデル:
class Details {
long mobileNo
String name
static constraints = {
mobileNo(blank:false, maxsize:12, matches:"44[0-9]{10}")
}
}
メッセージのプロパティ
sms.mobileNo.matches.invalid=You must enter a correct mobile number in {0}
意見
<g:hasErrors bean="${detailsInstance}">
<div class="alert error">
<g:renderErrors bean="${detailsInstance}" as="list" />
</div>
</g:hasErrors>
ページで作成をクリックすると、次のコントローラー関数に移動します。
def details = new Details(params)
if (details.validate()) {
}
else{
render view: 'create', model: [detailsInstance: details]
}
ここで、アプリケーションは次のように動作することを期待します。間違ったデータがコントローラーに渡されると、コントローラーはそれが有効でないと見なし、エラーのあるモデルを同じビューに戻します。次に、 messages.propertiesファイルからデータが正しくないエラー メッセージが取得されます。ただし、これが表示されると予想される場所:
You must enter a correct mobile number in [mobileNo]
私は代わりにこれを見ます:
Failed to convert property value of type java.lang.String to required type long for property mobileNo; nested exception is java.lang.IllegalArgumentException: Could not parse number: Unparseable number: "gg"
ユーザーに役立つメッセージを表示するために、検証用のカスタム メッセージを生成するのを手伝ってもらえますか? ありがとう