如何从辅助bean刷新整个JSF页面

时间:2010-09-02 15:40:42

标签: java jsf richfaces

我们在JSF页面上有一个rich:comboBox,它有一个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());
}

我们怎样才能让这个函数重新加载具有rich:comboBox的JSF页面?

感谢您的帮助。

2 个答案:

答案 0 :(得分:4)

您可以使用oncomplete与JS的<a4j:support>属性强制执行整页重新加载,如果这是您想要执行的操作,例如:

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

答案 1 :(得分:1)

a4j:support包含一个可选的reRender属性,可以在调用JSF侦听器后强制JSF组件重新加载。

您可以尝试:

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