我正在開發一個簡單的JSF應用程序,但我再次卡住了...的JavaServer Faces(JSF) - 用戶界面:可重複沒有顯示新元素
基本上,我有誰是登錄,想一個人發佈新消息:
<h:form id="messageform">
<div style="width:900px; margin-top:-20px;">
<div id="count">250</div>
<div id="barbox"><div id="bar"></div></div>
<h:inputTextarea id="textarea_message" cols="8" rows="5" value="#{messageBean.message}" />
</div>
<h:commandButton id="message_submit" value="" action="#{messageBean.postMessage(login.username)}" styleClass="input-submitbericht" />
</h:form>
而postMessage
方法在messageBean中。
public void postMessage(String username) {
Message.clearMessage();
System.out.println(db.getAlleBerichten().size());
if (Message.checkValidMessage(message) && Message.checkValidUsername(username)) {
Gebruiker g = db.readGebruiker(username);
db.addBerichtBijGebruiker(g, message);
Message.setMessage("Uw bericht is succesvol gepost!");
Message.setMessageType("info");
Message.setRenderMessage(true);
System.out.println(db.getAlleBerichten().size());
}
}
此代碼完美工作。我在messageBean中使用了一個簡單的System.out.println()
,並且元素得到完美添加。
現在,當我嘗試在屏幕上顯示新消息時,它根本不會被檢測到。這就像從來沒有得到添加到ArrayList中的元素...
我使用此代碼顯示消息:
<ui:repeat value="#{database.alleBerichten}" var="berichten">
<div class="record">
<div class="#{(rowCount % 2) != 0 ? 'posteven' : 'postodd'}">
<div class="text_wrapper text_wrapperm#{berichten.id}">
#{berichten.bericht}
</div>
<div class="edit editm#{berichten.id}" style="display:none; width:890px;">
<textarea class="editbox editboxm#{berichten.id}" cols="23" rows="3" id="m#{berichten.id}" method="message"></textarea>
</div>
<div class="postinfo"> door #{berichten.gebruiker.gebruikersnaam}
<c:if test="#{berichten.gebruiker.gebruikersnaam == login.username}">
<h:form>
<a style="cursor: pointer;" class="edit_link" title="Edit" id="m#{berichten.id}">Wijzigen</a> -
<h:commandLink value="Verwijderen" action="#{database.deleteBericht(berichten.id)}" styleClass="delbutton"/>
</h:form>
</c:if>
</div>
</div>
</div>
<c:set var="rowCount" value="#{rowCount + 1}"/>
</ui:repeat>
所以我覺得這個問題是與ui:repeat
的一部分,但我不知道我如何解決這個問題...
好吧,我不知道JSTL和JSF不會同步運行。但用戶發佈的新消息仍未添加到輸出中... – Arolition 2011-04-10 12:54:19
此問題是由其他原因引起的。確保消息bean中的'db'實例和EL中的'#{database}'引用指向完全相同的實例。 – BalusC 2011-04-10 12:57:02