[英]<h:commandButton> is not refreshing page after actioned
您好,我們正在使用a4j標簽。
單擊按鈕后,我們將從數據庫中檢索數據。 即使數據在服務器中可用,也不會在視圖中顯示。 手動刷新網頁后會導致數據顯示錯誤。
這是代碼段..一些代碼在這里
<rich:tab id="menu5" label="Recall">
<ui:include src="/pages/mctrans/reCallMcifTrans.xhtml" />
</rich:tab>
reCallMcifTrans.xhtml包含以下代碼
<h:commandButton type="button" id="reCallbutton1" value=" Search "
styleClass="commandExButton">
<a4j:support event="onclick" id="ajsf12"
oncomplete="javascript:alert('Search Completed');javascript:document.body.style.cursor='default';"
action="#{mcifRecallTransBean.reCallSearch}" reRender="reCallgrid1" />
</h:commandButton>
看來您正在使用RichFaces 3.3。 因此,您不需要帶有<a4j:support>
的<h:commandButton
,因為您可以使用已經執行此操作的<a4j:commandButton>
。 您可以將代碼重構為:
<a4j:commandButton type="button" id="reCallbutton1" value="Search"
styleClass="commandExButton"
action="#{mcifRecallTransBean.reCallSearch}"
reRender="reCallgrid1"
oncomplete="javascript:alert('Search Completed');javascript:document.body.style.cursor='default';" />
確保您的reCallgrid1
組件在<a4j:commandButton>
的同一<h:form>
中可用。
由於您還希望單擊按鈕時在搜索數據行為時添加等待 ,因此您可以將<a4j:status>
與<a4j:commandButton>
一起使用,如<a4j:status>
演示中所示 。 這是一個基本示例:
<a4j:commandButton type="button" id="reCallbutton1" value="Search"
styleClass="commandExButton"
action="#{mcifRecallTransBean.reCallSearch}"
reRender="reCallgrid1" />
<!-- Note that there's no oncomplete in this case -->
<a4j:status for="reCallbutton1">
<f:facet name="start">
<h:graphicImage value="/res/images/wait.gif"/>
</f:facet>
</a4j:status>
最后但並非最不重要的一點是,您應該將托管bean切換到請求范圍,並使用功能強大的RichFaces <a4j:keepAlive>
來模擬JSF 2 @ViewScoped
。 您甚至可以在托管bean上以注釋形式使用它(無需其他配置):
@KeepAlive
public class McifRecallTransBean {
//managed bean code here...
}
當您在Bean中使用請求參數時,您需要通過操作再次傳遞它們:
<h:commandButton type="button" id="reCallbutton1" value="Search" styleClass="commandExButton">
<a4j:support event="onclick" id="ajsf12" oncomplete="javascript:alert('Search Completed');javascript:document.body.style.cursor='default';" action="#{mcifRecallTransBean.reCallSearch}" reRender="reCallgrid1" />
<f:param name="param1" value="#{param['param1']}" />
<f:param name="param2" value="#{param['param2']}" />
</h:commandButton>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.