2011-09-15 12 views

答えて

1

ModelAndViewDefiningExceptionを配線してビューにエラーを送信するにはどうすればよいですか?

例外です。あなたはそれを投げる!

ModelAndViewDefiningExceptionは、ModelAndViewの例外ラッパーです。 Springフレームワークは、モデルを認識し、キャッチし、モデルを抽出し、ビュー名をビューに渡し、モデルをビューに公開します。

... 
if (someBadThingy) { 
    ModelAndView modelAndView = new ModelAndView("errorView"); // "errorView" name resolved to a view by the ViewResolver of your app 
    throw new ModelAndViewDefiningException(modelAndView); 
} 
... 

ハンドラ処理中にいつでも投げることができます。通常、Controllerのコードの中では、コントローラ要求ハンドラメソッドがModelAndViewを返すので、通常は例外をスローしません。したがって、内部にModelAndViewの例外をスローする代わりに、ModelAndViewを返すことができます。

しかし、ModelAndViewを返すことができない状況があります。 Interceptorsは、その方法がvoidまたはbooleanであるため、これの良い例です。インターセプタ内で何らかの条件が満たされていない場合、ModelAndViewDefiningExceptionはフローを中断させ、エラービューに移動します。

関連する問題