Primefaces组件的自动更新

时间:2016-07-29 13:47:03

标签: ajax jsf refresh onchange

我所拥有的是这段xhtml代码:

 <p:layoutUnit id="bottomline" position="south" gutter="0">        
        <h:outputText rendered=",#{not empty sprintlisteMB.getSaveStatus()}" style="float:left; color:white; font-size: 0.8em;" value="#{sprintlisteMB.getSaveStatus()}"/>
 </p:layoutUnit>

sprintlisteMB.getSaveStatus()返回只返回String saveStatus。现在我想在任何时候更新saveStatus来刷新outputText组件。

我不太确定如何实现这样的东西,而且我找不到符合我需求的东西。 谢谢你的帮助!

编辑: 所以现在我有这样的东西:

<p:layoutUnit id="bottomline" position="south" gutter="0">
    <h:outputText style="float:left; color:white; font-size: 0.8em;"
        value="#{sprintlisteMB.getSaveStatus()}" />
</p:layoutUnit>

<p:socket onMessage="handleChange" channel="/saveStatus" />

<script type="text/javascript">
function handleChange(data) {
    $('.display').html(data);
}

...

 package de.wdr.testtool.helfer;

import org.primefaces.push.annotation.OnMessage;
import org.primefaces.push.annotation.PushEndpoint;
import org.primefaces.push.impl.JSONEncoder;

@PushEndpoint("/saveStatus")
public class SaveStatusPushRecource {

    @OnMessage(encoders = {JSONEncoder.class})
    public String onChange(String status) {
        return status;
    }
}

...

public void setSaveStatus(final String status) {
        saveStatus = status;

        final EventBus eventBus = EventBusFactory.getDefault().eventBus();
        eventBus.publish("/saveStatus", String.valueOf(saveStatus));
    }
只要对数据库进行了更改,就会从几个bean中调用

setSaveStatus。 但是现在它仍然无法更新网站。缺少什么?

0 个答案:

没有答案