Spring 의 bean 부분의 예외를 처리했다고 해도.
기본적으로 jsp 페이지 내에서 발생하는 예외는 spring 만으론 잡을수 없다.
그래서 아래와같은 방법을 썻다.
- web.xml
1 2 3 4 5 6 | [code] <error-page> <exception-type>java.lang.Exception</exception-type> <location>/WEB-INF/jsp/error.jsp</location> </error-page> [/code] | cs |
- 위와같이 error.jsp 파일을 지정한다.
- error.jsp
1 2 3 4 | [code] <%@page contentType="text/html;chraset=utf-8" isErrorPage="true"%> <%=exception%> [/code] | cs |
- 여기서 중요한건 isErrorPage 속성을 true 로 했다는것이다.
- 이렇게 하면 request에 "javax.servlet.error.exception" 라는 attribute 가 들어있으면
위와같이 그냥 exception 변수를 쓸수있게 된다.
- BaseExceptionResolver.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | [code] package dic.resolver; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.web.servlet.HandlerExceptionResolver; import org.springframework.web.servlet.ModelAndView; public class BaseExceptionResolver implements HandlerExceptionResolver { private String view = null; public void setView(String view) { this.view = view; } public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object obj, Exception exception) { exception.printStackTrace(); request.setAttribute("javax.servlet.error.exception",exception); return new ModelAndView(view); } } [/code] | cs |
- 위 파일은 예전에 bean 예외를 잡기위해 만들었던 파일인데 저기다가 위와같이 request 에
javax.servlet.error.exception 예외를 추가하면 jsp 의 errorpage 를 그대로 사용할수 있다.
'개발' 카테고리의 다른 글
[java] 웹에서 세션(session)의 사용 (0) | 2014.09.20 |
---|---|
[javascript] input 숫자만 입력가능 (IE7 적용) (0) | 2014.09.20 |
[javascript] 슬라이드 (0) | 2014.09.17 |
[javascript] 자바스크립트 모음 (0) | 2014.09.16 |
[php] 현재 url가져오기 (0) | 2014.09.16 |