Ho cercato un po 'di tempo ma non ho trovato alcuna soluzione per eseguire quanto segue.Visualizzazione di un campo aggiuntivo di relazione molti a molti all'interno di una tabella
Sto provando a visualizzare una tabella contenente l'elenco di diciamo Utenti. Non è un grosso problema visualizzare i campi dagli utenti, ma è più complicato per i campi di associazione. Diciamo che ho le seguenti tabelle: User, Post e UserPosts, in UserPosts abbiamo un flag principale per indicare se un dato post è la posizione principale dell'utente o meno.
Nel mio datatable, devo visualizzare le informazioni dell'utente, significa campi nella tabella utente + il suo post principale.
Finora ho qualcosa di simile:
<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>
Credo che per la posizione dovrò recuperare dal database posizione principale di un determinato utente in una data colonna, ma poi come impostare questo valore (javascript , ajax?)
Sto pensando nel modo sbagliato, dovrei usare invece la classe di associazione. Con ciò intendo, recuperare tutti gli UserPosts in cui il campo principale = true? E poi iterare su userPosts invece di utenti, in questo caso, avrò qualcosa di simile:
<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>
Sembra strano per me, forse mi sbaglio.
Perché non si aggiunge al modello, $ {listUsers} ', nel proprio Controller, già il postName? Oppure, se non puoi o non vuoi, passare un altro modello separato con i valori? Ma allora dovresti assicurarti che il looporder forEach non è casuale. – EricG
Non sono sicuro di aver compreso il tuo problema concreto. L'utente non ha già una proprietà 'Lista' che puoi semplicemente ripetere in un ciclo annidato? –
BalusC
@EricG Io chiaramente non posso fare la prima cosa che proponi e per quanto riguarda la tua seconda proposizione, farò un tentativo. Scusa, non ho potuto rispondere fino ad ora. – aslan