2015-10-05 188 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"

相關問題