#java #jsf #servlets #error-handling #web.xml
#java #jsf #сервлеты #обработка ошибок #web.xml
Вопрос:
В моем web.xml ошибка 500 обрабатывается страницей JSF:
<error-page>
<error-code>500</error-code>
<location>/errorpage.html</location>
</error-page>
Если контейнер обрабатывает ошибку 500 и вызывает эту страницу JSF, есть ли в запросе параметр запроса или основное содержимое, которое содержит полное сообщение об ошибке?
Так, например, если я использую этот код в сервлете для предоставления описания ошибки с ошибкой 500:
response.sendError(HttpURLConnection.HTTP_INTERNAL_ERROR, "Some error message");
существует ли стандартный способ получить текст «Некоторое сообщение об ошибке» из запроса?
Ответ №1:
Оно доступно как атрибут запроса, ключом RequestDispatcher#ERROR_MESSAGE
которого является "javax.servlet.error.message"
. Итак, это должно сделать:
<p>The error message is: #{requestScope['javax.servlet.error.message']}</p>
(примечание: Я предполагаю, что вы используете Facelets; для JSP вам пришлось бы поместить это в <h:outputText>
)
Комментарии:
1. Я пытаюсь это, и я могу получить только
javax.servlet.error.exception
, но неjavax.servlet.error.message
,javax.servlet.error.exception_type
ни одно из остальных. В чем может быть причина?