xhtmljsfページのバッキングBeanのリストからのメッセージを表示しています。
ループにはui:repeatを使用し、メッセージごとに返信ボタンを使用しています。返信ボタンで、xhtmlページに表示されているユーザー名を表示しているダイアログボックスを呼び出しています。ただし、リストの最後のメッセージ送信者の名前が常に表示されます。
私のxhtmlコードを見てください
<h:form>
<div id="messages">
<ui:repeat var="userMsg" value="#{messagesManagedBean.userInboxMsgs}">
<p:dialog modal="true" widgetVar="messageDialog" resizable="false" width="750" height="200" header="New Message" >
<h:panelGrid columns="2">
<p:column>
<h:outputLabel for="msgRecepient" value="To"/>
</p:column>
<p:column>
<h:outputLabel id="msgRecepient" value="#{userMsg.userFullname}" >
</h:outputLabel>
</p:column>
<p:column>
<h:outputLabel for="msgContents" value="Message"/>
</p:column>
<p:column>
<p:inputTextarea id="msgContents" value="#{messagesManagedBean.msg.message}" cols="65" rows="3" />
</p:column>
<p:column>
<p:commandButton id="msgSend" value="Send" action="#{messagesManagedBean.sendMessage(userMsg.userId,'reply')}" oncomplete="messageDialog.hide()" />
</p:column>
</h:panelGrid>
</p:dialog>
<center><img class="h-diff" src="../images/differentiator-profile.jpg" width="437" height="1" /></center>
<div class="message">
<div id="senderImg">
<img class="senderImg" src="../images/profile-pic.jpg" width="50" height="50" />
</div>
<div id="message-txt-area">
<div id="senderName">
<p:commandLink styleClass="senderName" value="#{userMsg.userFullname}" action="#{myProfileManagedBean.loadProfileFrontInformation(userMsg.userId)}"></p:commandLink>
</div>
<div class="message-txt">
#{userMsg.message}
</div>
<div class="reply-btn">
<a href="#" onclick="messageDialog.show()">Reply</a>
</div>
</div>
</div>
</ui:repeat>
</div>
</h:form>
問題は、返信をクリックするとダイアログボックスが表示されますが、[宛先]セクションにはリストの最後のメッセージの送信者名が含まれていることです。
ありがとう