Как обновить всю страницу JSF из бэк-компонента - PullRequest
1 голос
/ 02 сентября 2010

У нас есть rich: comboBox на странице JSF, у которого есть valueChangeListener, который вызывает функцию резервного компонента:

<rich:comboBox id="cbmodel" defaultLabel="${accessUtils.activeRole}" value="${accessUtils.activeRole}" 
 style="float: right;" valueChangeListener="${accessUtils.valueChangeListener}" >
   <c:forEach var="role" items="${accessUtils.currentUserRoles}"> 
    <f:selectItem itemValue="#{role}"/>
    <a4j:support event="onchange" ajaxSingle="false" />

</c:forEach>
</rich:comboBox>

А вот функция вспомогательного компонента valueChangeListener:

public void valueChangeListener(ValueChangeEvent event){  
System.out.println("EVENT: HAS BEEN CALLED " + event.getNewValue());  
    setActiveRole((String) event.getNewValue());
}

Как мы можем заставить эту функцию перезагрузить страницу JSF, которая имеет rich: comboBox?

Спасибо за любую помощь.

Ответы [ 2 ]

4 голосов
/ 02 сентября 2010

Вы можете использовать атрибут oncomplete <a4j:support> с JS для принудительной полной перезагрузки страницы, если это то, что вы хотите сделать, например:

<a4j:support event="onchange" ajaxSingle="false" oncomplete="javascript:location.reload(true)"/>
1 голос
/ 02 сентября 2010

a4j: поддержка содержит необязательный атрибут reRender, который может вызвать перезагрузку компонента JSF после вызова слушателя JSF.

Вы можете попробовать:

<a4j:support event="onchange" ajaxSingle="false" reRender="myComp" />
...