0

我在 JSF 2.2 上有一个 RichFaces 项目,我想在处理用户请求时向用户显示状态更新和消息。我想为此使用a4j:outputpanel带有简单输出文本的 a 。我添加了system.out一行,当屏幕上的文本没有更新时,它会显示在我的服务器控制台上。

在我的流程类中:

private void showAdvise(final String message) {
   System.out.println(">>>>>ComUI showAdvise: " + message);
   this.beidCardStatusBean.updateStatus(message);
}

在我的 jsf 页面上: - 我使用以下命令启动进程:

 <a style="font-size:150%;" onclick="startEID();" 
href="savePhoto.do?userId=#{detailUserBean.id}">#{UIMessages['button.loadPhoto']}</a>

<a:outputPanel id="eidPaneContainer" ajaxRendered="true">
  <rich:popupPanel header="EID" id="eidPane" width="100" height="80">
    <h:outputText id="eidStatus" value="#{beidCardStatusBean.getStatus()}" >
    </h:outputText>
  </rich:popupPanel>
</a:outputPanel>
4

1 回答 1

0

为了更新页面必须向服务器发送请求的组件,当服务器上的某些内容发生更改时,它不会自动发生。简单的解决方案是使用民意调查,例如

<a4j:poll id="poll" interval="2000" enabled="#{bean.pollEnabled}" render="poll, popup" />

这将每 2 秒重新渲染一次弹出窗口。因此,在您的情况下startEID,需要设置pollEnabled并重新呈现民意调查以启动它。

PopupPanel 在重新渲染时可能会有点问题,domElementAttachment="parent"如果这不起作用,请尝试设置。

于 2020-04-23T15:22:48.737 回答