2010-09-02 70 views
1

我們有豐富的刷新整個JSF頁面:組合框JSF頁面上有一個調用後臺Bean功能的valueChangeListener:如何從支持bean

<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後臺bean功能:

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

我們怎樣才能得到這個函數來重新載入具有豐富的JSF頁面:comboBox?

感謝您的任何幫助。

回答

4

您可以使用<a4j:support>與JS的oncomplete屬性強制重新加載整個頁面,如果這是你想做的事,比如:

<a4j:support event="onchange" ajaxSingle="false" oncomplete="javascript:location.reload(true)"/> 
+0

這正是我所期待的。謝謝! – droidy 2010-09-02 15:56:36

1

a4j:支持包含一個可選的reRender屬性,可以在調用JSF偵聽器後強制重新加載JSF組件。

你可以嘗試使用:

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