【发布时间】:2015-07-20 21:20:35
【问题描述】:
我在当前可用版本中使用 Tomcat 和 PrimeFaces。
我面临的问题是,我无法将值从托管 bean 异步发送到它的 xhtml 页面。
这是来自我的 xhtml 页面的代码片段:
<p:inputTextarea id="transcriptionResult" rows="4" cols="120"
value="#{transcriptionTabView.currentTranscritpion}" />
这是被异步调用以重新/设置托管bean“transcriptionTabView”中的对象/值的方法。其中包含一个名为 Transcription currentTranscription 的对象。
@Override
public void trascriptionReady(Transcription t) {
this.currentTranscription = t;
}
我认为这足以重置视图,但什么也没发生。
【问题讨论】:
-
您需要发布更多代码。您在哪里调用方法 trascriptionReady(Transcription t)?你在哪里更新 inputTextarea ?
-
@EmilKaminski
transcriptionReady(Transcription t)方法由异步事件处理程序调用。我想如果我的 bean 中有 getter 和 setter 方法,this.currentTranscription上的每次修改都会触发我的 JSF 上的更新事件。但这不起作用。 -
@BalusC 感谢您的提示,但是否也可以调用此代码
EventBus eventBus = EventBusFactory.getDefault().eventBus(); eventBus.publish("/subscriber", htmlMessage); System.out.println("Message Sent at " + new Date());,例如不按<p:commandButton ...>但在transcriptionReady(t)中调用代码? -
@BalusC 你的提示帮助我解决了这个问题。谢谢:)
-
@kami:请用你的所作所为创建一个答案。
标签: jsf primefaces managed-bean asynchronous