我有PrimeFaces的NotificationBar奇怪的問題。添加PrimeFaces notificationBar讓我的代碼停止工作
我的代碼正在工作,但是,添加一個NotificationBar會使它以一種奇怪的方式行事!
我在DataTable中顯示來自Session Bean的數據。 一切都很好,但是,只要我添加此NotificationBar,數據表變成空的,沒有內容被提取:/
下面是一些代碼:
<!-- NOTIFICATION BAR headerMain.xhtml -->
<h:form>
<pou:poll autoStart="#{loginBean.logged}" global="false" interval="5" oncomplete="notificationBar.toggle()" update=":notificationBar"/>
</h:form>
<pou:notificationBar effect="slide" id="notificationBar" rendered="#{messagesBean.checkDaNotificare()}" widgetVar="notificationBar">
<h:outputLink value="./faces/messaggi.xhtml">
<h:outputText value="Hai 1 messaggio da leggere" rendered="#{messagesBean.daNotificare==1}"/>
<h:outputText value="Hai #{messagesBean.daNotificare} messaggi da leggere" rendered="#{messagesBean.daNotificare > 1}"/>
</h:outputLink>
</pou:notificationBar>
_
<!-- DATATABLE IN messaggi.xhtml -->
<pou:dataTable editable="false" id="conversationList" resizableColumns="false" rowKey="#{conversazione}" selection="#{messagesBean.destinatario}" selectionMode="single" value="#{messagesBean.listaConversazioni}" var="conversazione" widgetVar="conversationList" paginator="true" paginatorPosition="bottom" rows="20">
<pou:ajax event="rowSelect" oncomplete="conversationDialog.show()" update=":conversationDialog, :menuPanel"/>
<pou:column>
<f:facet name="header">
<div style="padding-left: 45%">
<h:outputText value="Conversazioni"/>
<h:form>
<pou:commandButton value="+" onclick="newMessageDialog.show()" style="margin-left: 67%"/>
</h:form>
</div>
</f:facet>
<h:outputText value="#{conversazione.username}"/>
</pou:column>
</pou:dataTable>
_
//Method used by NotificationBar to see if it has to be rendered
public boolean checkDaNotificare() {
System.err.println(daNotificare);
daNotificare = 0; //Riazzero, quelli precedenti li avrò già notificati
for (Messaggio m : getMessaggiDaLeggere()) {
System.err.println("Controllo " + m);
if (!messaggiNotificati.contains(m)) { //Conto i messaggi da notificare, che sono quelli da leggere meno quelli già notificati
System.err.println("___Non l'avevo ancora notificato!");
daNotificare++;
messaggiNotificati.add(m);
}
}
return (daNotificare > 0);
}
_
//Method used by the datatable to fetch data
public List<Utente> getListaConversazioni() {
listaConversazioni = messageManager.getUtentiConversazioni(utente);
return listaConversazioni;
}
/**
* PostConstruct method to initialize things
*/
@PostConstruct
public void init() {
listaConversazioni = messageManager.getUtentiConversazioni(utente);
messaggiNotificati = new LinkedList<>();
}
我離開的代碼在意大利,因爲它是非常簡單的,因爲它沒有做任何「特殊」。
我在做什麼錯?我已經試過幾乎所有的東西,但沒有事先的強校:(
感謝
編輯:! 我已經試過移動notificationBar的代碼到另一頁,一切工作......事情變得很奇怪;/
剛一個猜測,也許它有關於./faces/messaggi的相對路徑.xhtml「?這在其他頁面上可以,但不在第一頁中? – Daniel 2012-04-22 06:42:54
不,這只是一個鏈接...仍然無法找出問題是什麼,但我甚至用空NotificationBar – StepTNT 2012-04-22 17:13:41
你好你解決這個問題了嗎?我有一個類似的行爲....日Thnx – Mariah 2016-12-14 15:20:56