更新类的输出文本

问题描述 投票:0回答:1

我在JSF 2.2上有一个RichFaces项目,我想在处理用户请求时向用户显示状态更新和消息。我想在项目中使用 a4j:outputpanel 与一个简单的输出文本。我添加了一个 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>
jsf richfaces ajax-update
1个回答
0
投票

为了更新组件,页面必须向服务器发送一个请求,当服务器上的东西发生变化时,它不会自动发生。简单的解决方法是使用一个投票,例如

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

这将会每2秒重新发布一次弹出窗口。所以在你的情况下 startEID 需要设置 pollEnabled 并重新提交投票来开始它。

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

© www.soinside.com 2019 - 2024. All rights reserved.