我在 xhtml jsf 页面的支持 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>
现在的问题是,当我单击回复时,它会显示对话框,但“收件人”部分包含列表中最后一条消息的发件人名称。
谢谢