web-dev-qa-db-fra.com

Comment recharger la page lorsqu'un bouton est cliqué?

J'ai besoin de rafraîchir la page actuelle lorsque l'on clique sur le bouton de confirmation. J'essaie de trouver la réponse sur Internet, mais avec peu ou pas de succès du tout. Ce serait bien s'il y avait un moyen de le mettre à jour depuis le front-end (JSF), pas depuis le bean de sauvegarde, mais je prendrai les deux réponses comme solutions.

Mon bouton de commande ressemble à ceci:

<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>
10
WheelPot

Vous pouvez utiliser javascript

location.reload();

Ou vous pouvez rediriger vers le même URI que dans cette réponse .

Modifiez d'abord commandButton pour appeler la méthode du bean:

onConfirmComplete="#{messagesListBean.reload}"

Et dans le haricot:

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

Vous pouvez utiliser l'attribut render de a4j:commandButton dans ce but. Exemple:

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

Dans votre code, changez render="@none" à render="@form" ou render="@all".

2
Vasil Lukach