Я застрял в проблеме навигации, аналогичной этой .В нескольких словах, я пытаюсь перенаправить навигацию с одной страницы на другую, используя ajax с h:commandLink
.Вот базовый компонент
@ManagedBean
public class StartBean {
public void search(){
FacesContext
.getCurrentInstance()
.getExternalContext()
.getFlash()
.put("result", "hooray!")
;
}
public String showResult(){
return "result?faces-redirect=true";
}
}
и начальная страница
<h:body>
<h:form prependId="false">
<h:commandButton value="Click" action="#{startBean.search}">
<f:ajax execute="@this" render="@form"/>
</h:commandButton>
<br/>
<h:commandLink
action="#{startBean.showResult()}"
rendered="#{flash.result != null}"
value="#{flash.result}"
/>
</h:form>
</h:body>
, тогда как страница result
просто показывает сообщение.Обе страницы находятся в корне контекста веб-модуля.Бывает, что h:commandLink
правильно отображается после отправки ajax, но нажатие на него вызывает обновление страницы.Он не перенаправляет на страницу result
, как ожидалось.После этого, если страница перезагружается (F5), отображается страница result
.Кажется, это вопрос цикла рендеринга.
Есть предложения?
Заранее спасибо.