0
我有一個primefaces數據網格,我試圖使用primefaces更新。我可以看到onMessage方法被調用,但是,只有在onMessage方法中設置了斷點時,組件本身才會更新。這是處理程序:在原始瀏覽器中未收到推送事件
@PushEndpoint("/prices")
public class PricesResource {
private static final Logger logger = Logger.getLogger("PricesResource");
@OnMessage(encoders = {JSONEncoder.class})
public OrderBook onMessage(OrderBook orderBook) throws InterruptedException {
logger.log(Level.INFO, "PricesResource.onMessage price {0}", orderBook.getPrice());
return orderBook;
}
}
這是代碼我呼籲更新我的index.xhtml組件:
<p:socket onMessage="handleMessage" channel="/prices" />
<script type="text/javascript">
function handleMessage(data)
{
updateWidgets();
}
</script>
<p:remoteCommand name="updateWidgets"
actionListener="#{parliamentManager.findLatestPrices}"
update="resultDisplay"/>
和組件只是在的index.xhtml此刻底部:
<h:panelGroup id="resultDisplay">
<p:dataGrid id="prices" var="orderBooks" value="#{parliamentManager.latestPricesResults}" columns="3" rows="12">
<p:column>
<p:panel header="#{orderBooks.bidOrderId.member.memberId}">
<h:panelGrid columns="1">
<h:outputText value="#{orderBooks.price}" />
</h:panelGrid>
</p:panel>
</p:column>
</p:dataGrid>
</h:panelGroup>
我很難過,爲什麼這是,任何建議,將不勝感激。
我假定您使用瀏覽器開發人員工具「調試」網絡流量?檢查'更新'屬性值的正確性等? – Kukeltje
@Kukeltje我會給它一個去,但我不知道我在找什麼。 – zobbo
是否執行了遠程命令,它的響應看起來是什麼樣的(例如更新但是具有相同的數據),響應中的任何錯誤是稱爲etc的方法...... – Kukeltje