单击按钮时如何重新加载页面?
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:commandButton
的render
属性。
示例:
<a4j:commandButton value="buttonName"
action="#bean.action"
render="someForm" />
在您的代码中将render="@none"
更改为render="@form"
或render="@all"
。
【讨论】:
以上是关于单击按钮时如何重新加载页面?的主要内容,如果未能解决你的问题,请参考以下文章
单击 Safari 上的后退按钮时使用 React 挂钩强制页面重新加载