1

私はSpring 2.5を使用しています.次のことをしたい: spring UserDetailsS​​ervice のオーバーライドされたloadUserByUsernameメソッドで、カスタム例外をスローし、その例外でログインページにカスタムエラーメッセージを表示したい. このカスタム例外を処理する方法を誰かが提案できますか?

4

1 に答える 1

1

AbstractHandlerExceptionResolver を拡張して、このクラスで例外を処理できます。コードは完全ではありませんが、その部分からアイデアを理解できます。

public class ExceptionResolver extends AbstractHandlerExceptionResolver {

@Override
protected ModelAndView doResolveException(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) {
     ModelAndView mav;
     if(ex instanceof YourException){
         mav = loginController.showLoginPage();
         mav.addObject("errorMessage","Some error message text.");
         \\also you can change response code here or add some logic
     }
     else {
       \\some another page
     }
     return mav;
}

また、これを applicationContext.xml (または、Spring コンテキスト構成を含む別のファイル) に追加します。

<bean class="com.mycompany.ExceptionResolver" />
于 2013-06-28T10:23:41.170 に答える