单击按钮时如何重新加载页面?

Posted

技术标签:

【中文标题】单击按钮时如何重新加载页面?【英文标题】:How to reload page when a button is clicked? 【发布时间】:2016-01-02 01:01:55 【问题描述】:

单击确认按钮时,我需要刷新当前页面。我试图在互联网上找到答案,但几乎没有成功。如果有一种方法可以从前端(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>

【问题讨论】:

【参考方案1】:

您可以使用javascript

location.reload();

或者您可以重定向到与this answer 相同的URI

首先将commandButton改为调用bean方法:

onConfirmComplete="#messagesListBean.reload"

在 bean 中:

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

【讨论】:

【参考方案2】:

您可以为此目的使用a4j:commandButtonrender 属性。 示例:

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

在您的代码中将render="@none" 更改为render="@form"render="@all"

【讨论】:

以上是关于单击按钮时如何重新加载页面?的主要内容,如果未能解决你的问题,请参考以下文章

如何在提交时重新加载页面

如何使 HTML 按钮不重新加载页面

单击 Safari 上的后退按钮时使用 React 挂钩强制页面重新加载

在 Django 中,如何单击按钮来调用视图然后重新加载页面

单击按钮Javascript,HTML时页面重新加载

如何使值不重置每个页面重新加载?