我使用Primefaces TabView,CommandButton和FileDownload下載日誌文件。一旦日誌文件被下載,我想提供從服務器上刪除日誌內容的選項。文件下載後更新組件
最初,刪除日誌文件按鈕(deleteEventLogButton)被禁用,並具有自定義標題,指出「刪除日誌 - 導出必需」。一旦導出日誌,應該啓用該按鈕,標題應該指出「刪除日誌」。
我遇到的問題是即使在導出事件成功完成後,刪除日誌文件按鈕仍處於禁用狀態,並且標題顯示「刪除日誌 - 導出必需」。
我的猜測是在fileDownload值之前調用了exportEventLogButton-> Update =「deleteEventLogButton」。
一旦我導出了日誌,我可以點擊'F5'並刷新頁面,啓用deleteEventLogButton顯示正確的標題。
JSF - 摘錄
<p:tabView id="logView">
<p:tab id="eventLogTab" title="Security Events">
<p:panelGrid ...>
<p:commandButton id="exportEventLogButton" icon="ui-icon-disk" styleClass="c25" ajax="false" title="Export Log" disabled="#{empty managedCmsLogsBean.eventLogEntityList}" update="deleteEventLogButton">
<p:fileDownload value="#{managedCmsLogsBean.exportEventLogFiles()}"/>
</p:commandButton>
<p:commandButton id="deleteEventLogButton" icon="ui-icon-trash" styleClass="c25" ajax="false" title="#{managedCmsLogsBean.deleteEventLogCaption}" disabled="#{! managedCmsLogsBean.eventLogExported}" action="#{managedCmsLogsBean.clearEventLogs()}" update="eventLogTab" />
</p:panelGrid>
<p:dataTable value="#{managedCmsLogsBean.eventLogEntityList}" ...>
...
</p:dataTable>
</p:tab>
</p:tabView>
輔助Bean - 摘錄
private boolean eventLogExported;
public StreamedContent exportEventLogFiles() {
eventLogExported = true;
return logFileUtility.exportSecurityEventLog(eventLogEntityList, eventLogStartDate, eventLogStopDate);
}
public boolean isEventLogExported() {
return eventLogExported;
}
public void setEventLogExported(boolean value) {
eventLogExported = value;
}
public String getDeleteEventLogCaption() {
return eventLogExported ? "Delete Logs" : "Delete Logs - Export Required";
}
我試着動更新事件的FileDownload內,但它並沒有發揮作用。
<p:commandButton id="exportEventLogButton" icon="ui-icon-disk" styleClass="c25" ajax="false" title="Export Log" disabled="#{empty managedCmsLogsBean.eventLogEntityList}">
<p:fileDownload value="#{managedCmsLogsBean.exportEventLogFiles()}">
<p:ajax update="deleteEventLogButton"/>
</p:fileDownload>
</p:commandButton>
我已經搜索了幾天,現在發現了很多問題,這些問題非常接近這個......但沒有任何幫助。 :(
只是爲了讓事情很清楚...我沒有與出口問題,但問題是,出口完成後刪除日誌文件按鈕不會啓用。
太棒了!這工作很好。我喜歡這個網站......這是因爲像你這樣的人! – AceFunk
因爲你是新的,如果這有助於你,你應該接受一個答案 – partlov
它的工作!謝謝。 –