单击按钮时如何重新加载页面?
How to reload page when a button is clicked?
我需要在点击确认按钮时刷新当前页面。我试图在互联网上找到答案,但收效甚微或根本没有成功。如果有一种方法可以从前端 (JSF) 而不是从 backing 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>
您可以使用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());
}
为此,您可以使用 a4j:commandButton
的 render
属性。
示例:
<a4j:commandButton value="buttonName"
action="#{bean.action}"
render="someForm" />
在您的代码中将 render="@none"
更改为 render="@form"
或 render="@all"
。
我需要在点击确认按钮时刷新当前页面。我试图在互联网上找到答案,但收效甚微或根本没有成功。如果有一种方法可以从前端 (JSF) 而不是从 backing 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>
您可以使用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());
}
为此,您可以使用 a4j:commandButton
的 render
属性。
示例:
<a4j:commandButton value="buttonName"
action="#{bean.action}"
render="someForm" />
在您的代码中将 render="@none"
更改为 render="@form"
或 render="@all"
。