在Primefaces Push

时间:2016-07-07 20:37:00

标签: jsf primefaces

是否有办法将前端数据包含在发送到后端,可能在reply.completed参数中,这样如果条件不满足,前端可以通知后端状态和后端并对该数据做些什么?如果是这样,怎么样?

从后端:

Reply reply = new Reply() {
    @Override
    public void completed(String arg0) {
        System.out.println("Reply received: " + arg0);              
    }           
};
summary = this.getText("report.ready.view").replace("{0}", reportName);
reportLink = this.getExternalContextRoot() + reportLink + (!reportLink.contains("?") ? "?reportId=" : "&reportId=") + savedReportStatus.getSavedReportStatusId();
detail = "<a href='" + reportLink + "'>" + this.getText("click.to.view") + "</a>";
facesMessage = new FacesMessage(severity, summary, detail);
eventBus.publish(channel, facesMessage, reply);

从前端:

<p:socket onMessage="handleMessage" channel="/reports/#{userSessionBean.userID}" autoConnect="true"/>
<script type="text/javascript">
    function handleMessage(message) {
        if (DO SOME CHECK) {
            if (message.severity == 'INFO 0') {
                message.severity = 'info';
            } else if (message.severity == 'WARN 1') {
                message.severity = 'warn';
            } else if (message.severity == 'ERROR 2') {
                message.severity = 'error';
            } else if (message.severity == 'FATAL 3') {
                message.severity = 'fatal';
            }
            PF('reportsGrowl').show([message]);
            updateViewedReports();
        } else {
            SEND THE BACK-END INFORMATION INDICATING THE CHECK FAILED AND THE MESSAGE WAS NOT SHOWN
        }
    }
    $(document).ready(function () {
        updateViewedReports();
    });
</script>

0 个答案:

没有答案