2015-02-24 4 views
1

У меня есть задача adf на странице. Taskflow имеет 2 страницы внутри, страница 1 - это страница по умолчанию. Когда я открываю первую страницу, перейдите на вторую страницу и перезагрузите страницу в браузере, я все еще вижу вторую страницу. Что я вижу, чтобы увидеть страницу 1 после перезагрузки страницы в браузере.Как перезапустить перезапуск задачи после перезагрузки страницы?

ответ

0

Это основной принцип, лежащий в основе навигации по задачам ADF, принцип, которым мы все любим и заботимся. И теперь вы хотите изменить его!

Серьезно, я не знаю простой способ сделать это, но если бы я попробовать что-то вроде этого, я хотел бы использовать pagePhaseListener:

public void beforePhase(PhaseEvent phaseEvent) { 
    if (!AdfFacesContext.getCurrentInstance().isPostback()) 
    { 
     ExternalContext ec = FacesContext.getCurrentInstance().getExternalContext(); 
     HttpServletRequest request = (HttpServletRequest) ec.getRequest(); 
     try { 
      ec.redirect((request).getRequestURI()); 
      //you need to flag this redirect into the session, not to get an infinite loop. 

     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
    } 


} 

Опять же, я был бы очень осторожным с такими подход, особенно если вы используете ADF Business Components.

+0

Я использую taskflow внутри портлета. Первым шагом задачи является инициализация параметров. Таким образом, когда веб-сайт-портал ставит новые параметры, пользователь видит старое, потому что taskflow didn, t теперь об этом и показывает один и тот же вид потока задач со старыми параметрами. – Dzmitr

+0

Я попытаюсь использовать ваше решение и расскажу о его результатах. – Dzmitr

+0

Я бы предложил перенаправить на статическую страницу (например, blank.html) И на этой странице снова перенаправить обратно на ваш портал из javascript (body onload = "document.location = 'www.yourportal.com')) –

Смежные вопросы