2009-05-14 8 views
1

検証エラーがなければ、モデルにデータを追加したいと思います。onBindAndValidateのerror.getModelに値を設定する

errors.getModel().putAll(map); 

私はまた、1つのput(key, value)が、成功せずに使用して値を1つずつ入れてみました:私は、私はモデルが含まれ、私は、オブジェクトをエラーにアクセスすることがonBindAndValidate、でこれを行うことができると思いました。

どうすればよいですか?

私はprocessFinishに検証した後、これを行うことができます

答えて

0

return showPage(request, errors, getCurrentPage(request)) 
     .addAllObjects(map); 
1

あなたは直接はBindExceptionのモデルにデータを追加することはできません。あなたがすることはできません理由:errors.getModel()は、あなたがそれを呼び出すたびに作成され、新しいマップを返すため

errors.getModel().putAll(map); 

です。したがって、onBindAndValidateの例では、BindExceptionオブジェクトから新しいモデルを取得し、モデルにデータを追加してからそれを放棄します。 2番目の例では、データをモデルに追加してから返します。

コントローラメソッドからはBindExceptionのモデルを使用すると、このようになります。その他の一般的な使用法:

Map errorModel = errors.getModel(); 
errorModel.putAll(otherMap); 
return new ModelAndView("viewName", errorModel); 

も参照してください:BindException#getModel()

関連する問題