我们在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页面?
感谢您的帮助。
答案 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" />