2013-12-02 2 views
1

Я использую omnifaces для обработки исключений таймаута ajax.omnifaces и prime p: dialog modal bug

После сконфигурировать его на гранях-конфигурации:

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

это произведения corretly перенаправление на страницу входа, сконфигурированный в web.xml.

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

Но я нашел две ошибки: (? = Истекло верно)

1. Перенаправляющий игнорировать существование строки запроса.

2. Использование primefaces компонента р: диалог с модальным = «истинный», страница перенаправляется на определенный один, но страница оставаться непригодным для использования, потому что редирект будет сделано, но тем самым предотвращая рабочий процесс в главном окне приложения.

Omnifaces 1.6.3 Primefaces 3,5

ли вы пережили такой ситуации?

ответ

1

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

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


2. Использование primefaces компонента р: диалог с модальным = «истина», страница перенаправляется на определенный один, но страница пребывания непригодной, потому что редирект будет сделано, но тем самым предотвращая рабочий процесс по применению главное окно.

В PrimeFaces наложения виджета, как известно, «повесить» вокруг, когда OnComplete -Какой должна скрыть overlay- от АЯКС запрос не будет выполнен из-за исключения во время визуализации. Вам нужно будет добавить следующую страницу на страницу с ошибкой, чтобы исправить это:

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