【问题标题】:How to refresh entire JSF page from the backing bean如何从支持 bean 刷新整个 JSF 页面
【发布时间】:2011-04-07 10:08:10
【问题描述】:

我们在 JSF 页面上有一个 rich:comboBox,它有一个调用支持 bean 函数的 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 支持 bean 函数:

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

如何让这个函数重新加载具有rich:comboBox的JSF页面?

感谢您的帮助。

【问题讨论】:

    标签: java jsf richfaces


    【解决方案1】:

    如果你想这样做,你可以使用 &lt;a4j:support&gt;oncomplete 属性和 JS 来强制重新加载整个页面,例如:

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

    【讨论】:

    • 这正是我想要的。谢谢!
    【解决方案2】:

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

    你可以试试:

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

    【讨论】:

      猜你喜欢
      • 2015-04-30
      • 2014-02-25
      • 1970-01-01
      • 2018-04-04
      • 1970-01-01
      • 2011-10-13
      • 2012-09-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多