我一直在尋找一段時間,但沒有找到任何解決方案來做到以下幾點。顯示錶格內多對多關係的額外字段
我想顯示一個包含讓我們說用戶列表的表。顯示來自用戶的字段並不重要,但對於關聯字段而言更復雜。假設我有以下表格:User,Post和UserPosts,在UserPosts中,我們有一個標誌主要用於指示給定的帖子是否是用戶的主要位置。
在我的數據表中,我必須顯示用戶的信息,這意味着在用戶表+他/她的主要帖子中的字段。
到目前爲止,我有這樣的事情:
<table>
<thead>
<tr>
<th>name</th>
<th>FrstName</th>
<th>Age</th>
<th>Main position</th>
<th>Action</th>
</tr>
<tbody>
<c:forEach items="${listUsers}" var="user" varStatus="status">
<tr>
<td><c:out value="${user.name}" /></td>
<td><c:out value="${user.firstName}" /></td>
<td><c:out value="${user.age}" /></td>
<td><c:out value="Position here" /></td>
<td>
Delete
<a href="/myAppli/user/${user.idUser}">Update</a>
</td>
</tr>
</c:forEach>
</tbody>
</thead>
我覺得位置,我將不得不從給定用戶的數據庫,主要位置在給定列中檢索,但隨後如何設置這個值(JavaScript的,阿賈克斯?)
我在想錯誤的方式,應該使用關聯類代替。我的意思是,檢索主場=真的所有UserPosts?然後遍歷userPosts,而不是用戶,在這種情況下,我都會有這樣的事情:
<c:forEach items="${listUserPosts}" var="userPost" varStatus="status">
<tr>
<td><c:out value="${userPost.user.name}" /></td>
<td><c:out value="${userPost.user.firstName}" /></td>
<td><c:out value="${userPost.user.age}" /></td>
<td><c:out value="${userPost.post.postName}" /></td>
<td>
Delete
<a href="/myAppli/user/${userPost.user.idUser}">Update</a>
</td>
</tr>
</c:forEach>
似乎怪我,也許我錯了。
爲什麼不添加到'$ {listUsers}' - 模型,在您的Controller中,已經是postName?或者,如果你不能或不想要,通過另一個單獨的模型與值?但是你必須確保forEach looporder不是隨機的。 – EricG
我不確定我是否瞭解您的具體問題。 '用戶'是否已經擁有'List'屬性,您可以在嵌套循環中迭代? –
BalusC
@EricG我顯然不能做你提出的第一件事情,至於你的第二個提議,我會試一試。對不起,我直到現在纔回答。 – aslan