Как получить другую страницу с ошибкой для другого PROJECT_STAGE в JSF - PullRequest
0 голосов
/ 09 февраля 2020

Я хочу показать подробное исключение вместе с трассировкой стека на странице ошибки, если стадия проекта находится в разработке

web. xml entry -

<context-param>
    <param-name>javax.faces.PROJECT_STAGE</param-name>
    <param-value>Development</param-value>
</context-param>

else, если стадия проекта - Производство затем я хочу показать пользовательское сообщение пользователю.

web. xml entry-

<context-param>
    <param-name>javax.faces.PROJECT_STAGE</param-name>
    <param-value>Production</param-value>
</context-param>

Есть ли способ добиться этого?

1 Ответ

2 голосов
/ 10 февраля 2020

Стадия проекта JSF доступна по Application#getProjectStage(). Приложение JSF, в свою очередь, доступно по номеру FacesContext#getApplication(). Контекст JSF в EL доступен для #{facesContext}.

Итак, это следует сделать на странице ошибки:

<c:choose>
    <c:when test="#{facesContext.application.projectStage eq 'Development'}">
         <!-- Print stack trace here -->
    </c:when>
    <c:otherwise>
         <!-- Print custom message here -->
    </c:otherwise>
</c:choose>
...