2

Spring MVC 2.5 を使用しています。

数値のみを入力できるフィールドがあります。そして、探していた UI に正確なエラー メッセージが表示されます。何かのようなもの

Failed to convert property value of type [java.lang.String] to required type [java.math.BigDecimal] for property executionThresholdAmount; nested exception is java.lang.NumberFormatException

そのようなメッセージをユーザーに表示したくありません。表示するテキストを整理するために message.properties ファイルを使用します。

必要なのは、特定のフィールドのエラー メッセージを上書きすることだけです。それはできませんでしたが、これが私が使用していたトリックです

if(result.hasFieldErrors()){

            List<FieldError> bindingErrors=( List<FieldError>)result.getFieldErrors();
            BindingResult fieldErrors=new BeanPropertyBindingResult (offerSetting, "offerSetting");
            for(FieldError error :bindingErrors ){
                String field=error.getField();                
                fieldErrors.rejectValue(field, "invalid.amount."+field);


            }


            result=fieldErrors;
            #more code

私がやっていることは、BindingResult の実装である BeanPropertyBindingResult を作成し、エラー フィールドに必要なメッセージを入力し、結果オブジェクトへの参照を渡して表示されるようにすることです。ただし、両方のデフォルト メッセージが表示されるようになりました

like

Failed to convert property value of type [java.lang.String] to required type [java.math.BigDecimal] for property executionThresholdAmount; nested exception is java.lang.NumberFormatException

私が欲しかったメッセージも。何かのようなもの

"The amount for field price you entered is invalid"

より良いアイデアはありますか?

4

1 に答える 1

9

メッセージ プロパティ ファイルに次のようなものを追加してみてください。

typeMismatch.objectClassName.field=Your custom message

あなたの場合:

typeMismatch.offerSetting.amount=The amount for field price you entered is invalid

私のために働きます:)

于 2013-06-13T07:38:42.177 に答える