JavaのWebアプリケーション開発フレームワークによる、Webサイト開発の顛末記です。

EclipseのMavenを使った、Spring-MVC、Thymeleaf、MyBatis 等のプログラミングテクニックを、
備忘録的に記録しています。実際に動くソースコードを多用して説明していますので、
これからEclipseや、Spring-MVCを始めたいと思っている人にとって、少しでも参考になれば幸いです。
Spring-MVCの散歩道 > 応用の森(Spring-MVC編) > ファイルアップロード処理と例外処理

package jp.dip.arimodoki.common;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.web.multipart.MaxUploadSizeExceededException;
import org.springframework.web.servlet.HandlerExceptionResolver;
import org.springframework.web.servlet.ModelAndView;

/**
 * 例外のハンドラクラスです。
 */
@Component
public class GlobalExceptionResolver implements CConst, HandlerExceptionResolver {

    /**
     * 例外ハンドラ
     */
    @Override
    public ModelAndView resolveException(
                        HttpServletRequest request,
                        HttpServletResponse response,
                        Object object,
                        Exception ex) {

        ModelAndView mav = new ModelAndView();
        if (ex instanceof MaxUploadSizeExceededException) {
            logger.log_info(this,"Maximum upload file size");
            mav.addObject("errmessage", "アップロードファイルサイズ制限エラーです。");
        } else {
            // Viewに表示するメッセージをセットします。
            mav.addObject("errmessage", "予期せぬエラーが発生しました。" +
                            " 詳細:【" + ex.getMessage() + "】");
        }

        // 遷移先のViewを指定します。(error.htmlに遷移します。)
        mav.setViewName("errorpage");
        return mav;
    }
}