我有一個兩個標籤頁,一個標籤是記錄列表,點擊記錄會切換到編輯標籤,並且在編輯中有Save和Cancel按鈕標籤。JSF immediate =「true」取消按鈕不起作用
現在,我點擊記錄#1,做一些編輯,然後點擊取消按鈕。當然,我不想驗證表單,因爲它已被取消,所以我在取消按鈕上設置了immediate="true"
。現在編輯選項卡關閉,回到記錄列表。然後,我點擊另一條記錄#2,發生問題:在編輯選項卡中,它仍然是記錄#1的先前內容,而不是記錄#2。我已經在調試視圖中檢查了變量,編輯表單的back bean被ACTUALLY填滿了記錄#2。
即,立即命令後被破壞的東西。
(一切都已經好之前,我已經加入了驗證,並立即= 「真」。)
class FormBean {
Record activeRecord;
...
public void clickOnList() {
activeRecord = loadRecord(clickIndex);
}
public void cancelForm() {
activeRecord = null;
}
}
page.xhtml:
<h:form id="main">
...
<p:tab title="Edit" rendered="#{formBean.activeRecord != null}">
...
<p:commandButton value="Cancel"
actionListener="#{formBean.cancelForm}"
update="main" async="true" immediate="true" />
</p:tab>
</h:form>