Омнифейс и главная модальная ошибка p:dialog

Я использую omnifaces для обработки исключений времени ожидания ajax.

После настройки в Faces-config:

<factory>
<exception-handler-factory>org.omnifaces.exceptionhandler.FullAjaxExceptionHandlerFactory</exception-handler-factory>
</factory>

он работает корректно перенаправляя на страницу входа, настроенную в web.xml.

<error-page>
<exception-type>javax.faces.application.ViewExpiredException</exception-type>
<location>/public/index.jsf?expired=true</location>
</error-page>

Но нашел два бага:

1. Перенаправление игнорирует наличие строки запроса (?expired=true).

2. Используя компонент Primefaces p:dialog с modal="true", страница перенаправляется на определенную страницу, но страница остается непригодной для использования, поскольку перенаправление выполнено, но, таким образом, предотвращается рабочий процесс в главном окне приложения.

Омнифейсы 1.6.3 Праймфейсы 3.5

Вы проходили через такую ​​ситуацию?


person elciospy    schedule 02.12.2013    source источник


Ответы (1)


1. При перенаправлении игнорируется наличие строки запроса (?expired=true).

Вы уже сообщали об этом как об ошибке 287, и это нормально. .


2. Используя компонент Primefaces p:dialog с modal="true", страница перенаправляется на определенную страницу, но страница остается непригодной для использования, поскольку перенаправление выполнено, но, таким образом, предотвращается рабочий процесс в главном окне приложения.

Известно, что виджет оверлея PrimeFaces «зависает», когда oncomplete, который должен скрывать оверлей, запроса ajax не может быть выполнен из-за исключения во время рендеринга. Вам нужно добавить следующий фрагмент на страницу ошибки, чтобы исправить это:

<h:outputScript target="body" rendered="#{facesContext.partialViewContext.ajaxRequest}">
    setTimeout(function() {
        $(".ui-widget-overlay").hide();
    }, 250);
</h:outputScript>
person BalusC    schedule 02.12.2013