我已经搜索了几个小时,我发现了一些与之相关的 stackoverflow 问题,但找不到解决方案。我有一个显示日志文件内容的 primefaces 对话框。按下按钮时会显示对话框。我的问题是,一旦显示对话框,内容就永远不会更新。也就是说,该#{pvtRunner.pvtLog}
方法永远不会被调用。如何让我的对话框在每次显示时都调用此方法,而不仅仅是第一次?
<h:head>
</h:head>
<h:body>
<p:dialog id="logDialog" header="PVT Log" widgetVar="dlg" height="400" width="600" dynamic="true">
<h:outputText id="logDialogContnet" value="#{pvtRunner.pvtLog}" escape="false"/>
</p:dialog>
<h:form>
<p:panelGrid id="mainPanelGrid" columns="1" styleClass="panelGridBorder panelGridCenter">
....
<p:commandButton id="showLog" value="Show Log" onclick="dlg.show()" type="button" update=":logDialogContnet"/>
</p:panelGrid>
</h:form>
</h:body>
这是应该更新对话框内容的 java 方法:
public String getPvtLog() {
String result = "";
try {
File logFile = new File(instanceRoot + "\\config\\ProcessVerification.log");
InputStream fis = new FileInputStream(logFile);
result = readStream(fis);
} catch (IOException e) {
log.severe(e.getMessage());
}
return result;
}
谢谢