2016. 6. 15. 13:35ㆍ[개발] 지식/Web 개발
에러발생시 미리 만들어둔 Error페이지로 전환시키고 싶은데
상단의 Top Bar를 유지시킨채 컨텐츠 영역에만 에러페이지를 표현하고 싶었다.
현 시스템은 Tiles View를 통해 레이아웃을 정의하고 있으므로 에러페이지도 같은 방식으로 레이아웃을 적용하고자 한다.
1. 먼저 web.xml을 수정한다.
<error-page>
<error-code>400</error-code>
<location>/error/error.do</location>
</error-page>
<error-page>
<error-code>401</error-code>
<location>/error/error.do</location>
</error-page>
<error-page>
<error-code>404</error-code>
<location>/error/error.do</location>
</error-page>
<error-page>
<error-code>405</error-code>
<location>/error/error.do</location>
</error-page>
<error-page>
<error-code>500</error-code>
<location>/error/error.do</location>
</error-page>
<error-page>
<error-code>503</error-code>
<location>/error/error.do</location>
</error-page>
jsp가 아니라 .do로 URI를 입력한 것은 서버단의 controllor를 타게 함으로써 TilesView를 적용시키기 위함이다.
2. 다음은 서버단의 Controller를 추가한다.
@RequestMapping("/error/error.do")
public String moveErrorPage(HttpServletRequest request, Model model) throws Exception {
// 브라우저 메인 타이틀 출력여부 적용
return "error";
}
3. 마지막으로 TilesView에서 레이아웃을 정의하고, 에러페이지 호출시 미리 정의한 레이아웃을 적용한다.
<definition name="errorLayout" template="/WEB-INF/jsp/common/ccw0001_error.jsp">
<put-attribute name="top" value="/WEB-INF/jsp/common/ccw0002.jsp" />
<put-attribute name="contents" value="" />
</definition>
<!-- Error 페이지 -->
<definition name="error" extends="errorLayout">
<put-attribute name="contents" value="/WEB-INF/jsp/error.jsp" />
</definition>
- 끝-
#위와 같은 방법으로 문제를 해결하였으나, tiles view나 spring에 대해 완벽히 이해하지 못한채 사용한 방법.
즉, 더 효율적이거나 적합한 방법이 있을 수 있으므로 지속적으로 보완하겠음
'[개발] 지식 > Web 개발' 카테고리의 다른 글
[JSTL] 시작하기 (0) | 2017.11.08 |
---|---|
Path Manipulation - Fortify (0) | 2017.08.22 |