Error Page 를 TilesView로 레이아웃 적용시키기

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
<