2015-10-05 189 views
3

点击确认按钮后,需要刷新当前页面。我试图在网上找到答案,但很少或根本没有成功。如果有一种方法可以从前端(JSF)更新,而不是从后台bean更新,那将会很好,但是,我会将这两个答案作为解决方案。单击按钮时如何重新加载页面?

我的命令按钮看起来是这样的:

<a4j:commandButton id="deleteButton" styleClass="simpleButtonRed" 
     value="#{msg['common.delete']}" 
     execute="@this" render="@none" limitRender="true" > 
     <adn:confirm 
      id="confirmButtonas"  
      message="#{msg['common.delete.confirm']}" 
      confirmAction="#{messagesListBean.deleteMessages}" 
      confirmLabel="#{msg['common.confirm']}" 
      confirmBtnStyleClass="mainButtonGreen" 
      confirmImmediate="true" 
      confirmRender="errorMessageOuterPanel" 
      onConfirmComplete="if(#{!messagesListBean.operationCompleted}) { 
           #{rich:component('errorPanel')}.show();}"/> 
</a4j:commandButton> 

回答

7

您可以使用javascript

location.reload(); 

或者,你可以重定向到同URIthis answer

首先改变命令按钮来调用Bean方法:

onConfirmComplete="#{messagesListBean.reload}" 

而且在豆:

public void reload() throws IOException { 
    ExternalContext ec = FacesContext.getCurrentInstance().getExternalContext(); 
    ec.redirect(((HttpServletRequest) ec.getRequest()).getRequestURI()); 
} 
1

您可以使用a4j:commandButtonrender属性用于此目的。 例子:

<a4j:commandButton value="buttonName" 
    action="#{bean.action}" 
    render="someForm" /> 

在你的代码更改render="@none"render="@form"render="@all"

相关问题