2009-10-16 3 views
1

모든 JSP 파일에 포함 된 헤더에 <%@ page errorPage="/error.jsp" %>을 정의 했으므로 처리되지 않은 예외를 잡아서 인쇄하는 대신 해당 오류 페이지로 리디렉션합니다. 이것은 하나의 경고와 함께 잘 작동합니다 - error.jsp 자체가 예외를 throw하면 무한 루프에서 계속적으로 자신에게 리디렉션됩니다. error.jsp에 대한 errorPage 값을 지우고 예외를 정상적으로 인쇄 할 것입니다. 난 그냥 공백하기 위해하여 ErrorPage 속성을 재정의하는 시도하지만, 나는 다음과 같은 오류 얻을 :JSP의 errorPage 속성 덮어 쓰기

Page 지시문 : (: 새로운 /error.jsp : 오래된)

인가 다른 값의 errorpage을 여러 번해야하는 것은 불법를 그 재산을 덮어 쓸 방법이 없나요? 또는이 문제를 방지하는 방법에 대한 다른 제안 사항이 있습니까?

답변

0

처음에는 리디렉션을 피하기 위해 < c : catch> 태그로 페이지를 둘러싸기만하면됩니다. 예외가있는 베어 본 메시지를 인쇄하면 중단되지 않을 것입니다.

1

동일한 속성으로 여러 개의 page 선언을하는 것은 실제로 불법입니다. 선택할 수있는 내용은 다음과 같습니다.

  1. 오류 페이지에 헤더를 포함하지 않습니다.
  2. 오류 페이지가 자체적으로 예외를 발생시키지 않는지 확인하십시오. 오히려 간단하고 직설적이어야합니다. 오류 페이지는 비즈니스 로직을위한 장소가 아닙니다. 거기에서 복잡한 작업을 원할 경우 다른 페이지로 리디렉션하는 것이 좋습니다.
0

직접 포함하지 않는 오류 페이지에 다른 포함 헤더가있는 이유는 무엇입니까? !!

그래서, 대신 갖는 다음의 errorpage 지침

없이

commonHeader.jsp 
=========== 
a 
b 
c 

을 그리고 새로운 하나를 포함하는 헤더를 수정

header.jsp 
========== 
a 
b 
c 
errorPage=error.jsp 

을 당신은있을 수 있습니다.

header.jsp 
=========== 
include=commonHeader.jsp 
errorPage=error.jsp 

당신의 나머지 부분에서 아무 것도 변경하지 않아도 그런 식으로 당신의 JSP의

당신은 단지에서의 errorpage을 변경해야

:

include="header.jsp" 

include="commonHeader.jsp" 

그리고 errorPage에는 더 이상 오류 페이지가 없습니다 ....

+0

그래, 내 버전에 대해 알지 못해도 누군가 여러 버전을 업데이트하면 여러 버전 (또는 코드를 인라인하는 것)으로 인해 혼란이 야기 될 수 있기 때문에 포함하지 않는 것이 주된 이유입니다. 그것은 확실히 일할 것이다. –

+0

나머지는 현재 가지고있는 것과 같은 컨트롤 (또는 엉망)을 가지고있을 것이고, 바깥에서 바뀌지는 않습니다. – OscarRyz