私はコントローラを持っていますが、リクエストが穏やかである場合はResponseEntity<>
を返す場合もあり、場合によってはModelAndView
を返さなければならない場合もあります。単一のSpring MVCコントローラからの複数の戻り型
これを行う方法はありますか?私は、戻り値の型が必要かどうかによって例外をスローし、次にExceptionHandler
に必要な型を返すことを考えていました。
例えば、ReturnResponseEntityException
を投げた後、ExceptionHandler
でこれをキャッチしResponseEntity
を返し、その他の場合にReturnModelAndViewException
を投げます。
しかし、ModelAndView
とResponseEntity
は、元のコントローラでのみ使用可能で例外ハンドラでは使用できない特定の属性を必要とするため、これが機能しないことを認識しました。属性を例外ハンドラに渡す方法はありますか?
また、ControllerからObjectを返すだけで、SpringはObject iのクラスに応じてResponseEntity
またはModelAndView
を処理できますか?
これを達成する別の方法がありますか?
なぜ例外を使用しますか?目的のオブジェクトを返すために単純な 'if-then-else'を使うことができます。 – Sachin
メソッドのシグネチャには単一の戻り値があるためです。その戻り値の型ではないものを返すことはできません – rurounisuikoden
同じエンドポイントで異なることがあるのはなぜですか?それは悪いデザインです。 – dambros