2015-10-05 9 views
3

Мне нужно обновить текущую страницу, когда нажата кнопка подтверждения. Я пытаюсь найти ответ в Интернете, но практически без успеха. Было бы неплохо, если бы был способ обновить его от front-end (JSF), а не от бэкбона, но я возьму оба ответа в качестве решений.Как перезагрузить страницу при нажатии кнопки?

Моя кнопка Команда выглядит следующим образом:

<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(); 

Или вы можете перенаправлять же URI как в this answer.

Первое изменение CommandButton вызвать метод компонента:

onConfirmComplete="#{messagesListBean.reload}" 

И в бобе:

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

Вы можете использовать render атрибут a4j:commandButton для этой цели. Пример:

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

В вашем изменении кода render="@none" в render="@form" или render="@all".

Смежные вопросы