2

例外を処理する場合、同じビューでユーザーにエラー メッセージを表示する@ControllerAdvice@ExceptionHandlerはどうすればよいですか。たとえば。ユーザーが「顧客/新規」ビューにいるとします。「保存」アクションを呼び出すと、コントローラーに移動し、メソッドサービスレイヤーを呼び出します。しかし、サービスレイヤーで内部例外が発生した場合、同じ「顧客/新規」ビューにエラーメッセージを表示したい.

次のように、例外を処理する別のクラスを作成しました。

@ControllerAdvice
public class DefaultControllerHandler {

    @ExceptionHandler({MyProjectException.class, DataAccessException.class})
    public ResponseEntity<String> handleInternalErrorException(Exception e) {
        logger.error(e.getMessage(), e);

        return new ResponseEntity<String>(e.getMessage(), HttpStatus.INTERNAL_SERVER_ERROR);

    }
}

あなたのアイデアに感謝します。ありがとう!

4

2 に答える 2

0

私が考えることができる唯一の解決策は、サービスレイヤーAJAXを呼び出してから、エラーがない場合にのみリダイレクトし、エラーメッセージを表示しない場合にのみリダイレクトすることです。

Javascriptファイルでは次のようになります

$("#someButton").click(function(){
         //make your ajax call
         if (noError){
    window.location.href = contextPath+"/somePath";
         }
        else{
           //display your error message
       }
});
于 2013-08-19T01:21:03.030 に答える