I'm having a problem with a Thymeleaf loop where it is returning the wrong object within a nested div. Where I expect it to return the object that corresponds to the sequential table row, instead it returns the first object in the loop. Code is posted below with comments:
<table class="striped responsive-table">
<thead>
<th>name</th>
<th>url</th>
<th>updated</th>
<th>author</th>
</thead>
<tbody>
<!-- THE BEGINNING OF THE LOOP-->
<tr th:each="page : ${pages}">
<!-- THIS RETURNS THE CORRECT OBJECT AND ATTRIBUTE-->
<td><strong><span th:text="${page.name}"></span></strong></td>
<td><a th:href="'/p-' + ${page.url}" class="waves-effect waves-light explode">
<span th:text="'/p-' + ${page.url}"></span></a></td>
<td th:text="${page.updated}"></td>
<td th:text="${page.author.getUsername()}"></td>
<td style="text-align: right;">
<a class="btn waves-effect waves-light" th:href="'page-edit-' + ${page.id}">edit</a>
<a class="waves-effect waves-light btn btn-flat btn-delete view"
onclick="$('#modal1').modal('open');">delete</a>
<!-- Modal Structure -->
<div id="modal1" class="modal">
<div class="modal-content center">
<h4 style="color: darkred">Are you sure?</h4>
<!-- HERE IS MY PROBLEM: THIS RETURNS THE FIRST OBJECT IN THE LOOP EVERY TIME -->
<p th:text="'Confirm that you want to delete this page: ' + ${page.name}"
style="color: darkred"></p>
</div>
<div class="modal-footer">
<a href="#" class=" modal-action modal-close waves-effect waves-green btn-flat">CANCEL</a>
<a th:href="'/page-delete-' + ${page.id}"
class=" modal-action modal-close waves-effect waves-red btn-flat">DELETE</a>
</div>
</div>
<script>
$(document).ready(function () {
$('#modal1').modal();
});
</script>
</td>
</tr>
</tbody>
</table>
How I can get around this problem?
page.author.username(and to useDELETEinstead of some ad-hoc "delete URL").