2017-05-11 8 views
0

api를 호출하고 응답이 null인지 여부를 확인하는 Java 클래스 (Java 클래스가 포함 된 구성 요소)가 있습니다. null 인 경우 오류 구성 요소를 호출해야합니다. 404로 응답 상태를 설정하면 해당 행을 실행하기 전에 응답을 200으로 취하기 때문에 작동하지 않습니다.이 경우 오류 구성 요소를 호출하는 방법. 참고 : URL을 error.html로 리디렉션하려고했지만 적절한 해결책이 아닙니다.눈에 띄는 자바에서 오류 구성 요소를 호출하는 중

답변

0

응답에 이미 커밋 된 콘텐츠가있을 수 있으므로 일반적으로 구성 요소 /보기에서 응답 상태를 리디렉션하거나 변경하는 것은 좋지 않습니다.

당신이 중 하나를 사용하면 응용 프로그램을 재 설계 할 수 있습니다 : 원격 API가 null를 돌려주는 경우 무엇을 위해 최선을 다하고 있습니다 전에, 404을 반환

  1. 전화 요청 처리의 시작 부분에서 원격 API 응답.
    • 적절한 응답을 렌더링, 널 응답이 예상되는 경우에/어떤 경우에 허용 :
    • 중 하나에 의해 원격 API에서 널 응답을 처리합니다.
    • 널 응답이 예상되지 않는 경우를 대비하여 상태 500이되는 예외를 던집니다.
+0

감사합니다. 하지만 "요청 처리 시작시 원격 API 호출"이라고 말하면 혼란 스럽습니다. 이 흐름은 다음과 같습니다. 1. 잘못된 페이지가 호출 되어도 존재하지 않습니다. 2. 상위 페이지의 구성 요소로 이동합니다. 3. 페이지 구성 요소는 api를 호출하여 페이지가 존재하는지 여부를 확인합니다. 이러한 페이지는 동적 페이지입니다. 4. 존재하는 경우 404 오류 페이지로 리디렉션되지 않으면 표시하십시오. resp가 이미 커밋되었으므로 4 단계에서 응답 상태를 설정할 수 없습니다. 나는 api를 호출하여 그 존재를 알 수 있기 때문에 3 단계에서 그것을 할 수 없다. 그래서 어떤 단계를 제안합니까? –

+0

@SkepticScribbler 아마도 상황에 따라 요청을 처리/가로 채고 동적 API/내용을 검사하는 특수 서블릿이나 필터가있을 수 있습니다. 다른 아이디어는 무엇이 렌더링되기 전에 호출되고 리디렉션을 처리 할 수있는 사용자 정의 페이지 도우미/사용 객체를 정의하는 것입니다. – Vlad

+0

일부 기사/URL을 가르쳐 주시면 정말 도움이 될 것입니다. 제가이 말을 처음 접했을 때 저는 여러분이 말하는 것을 이해했지만 구현 방법을 모릅니다. 두 번째 아이디어는 가까운 곳에있는 상황에 맞지만 getResponse(). sendRedirect를 수행 할 때 제대로 작동하지만 발생하지 않아야하는 URL을 변경합니다. 어쨌든 지금까지 귀하의 시간과 반응에 감사드립니다! –