#java #spring-boot #bootstrap-4 #thymeleaf #spring-webflux
Вопрос:
Я получаю от контроллера:
public Mono<String> getShops(){
.....
model.addAttribute("shops", shops);
return Mono.just("shoppage");
}
в моем shoppage.html У меня есть вкладка с таблицей:
<ul class="nav nav-tabs">
<li class="nav-item">
<a class="nav-link active" data-bs-toggle="tab" data-bs-target="#active-tab"
aria-current="page">ACTIVE</a>
</li>
<li class="nav-item">
<a class="nav-link" data-bs-toggle="tab" data-bs-target="#unactive-tab"
aria-current="page">NON_ACTIVE</a>
</li>
</ul>
<div class="tab-content" id="nav-tabContent">
<div class="tab-pane fade active show" id="active-tab">
<div>
<table class="table table-hover">
<thead>
<tr>
<th scope="col">Id</th>
</tr>
</thead>
<tbody>
<tr th:each="shop : ${shops}" th:if="${shop.status} == 'ACTIVE'">
<th class="clickable-row" th:id="${shop.id}" th:text="${shop.id}" scope="row">d</th>
</tr>
</tbody>
</table>
</div>
</div>
<div class="tab-pane fade" id="unactive-tab">
<div>
<table class="table table-hover">
<thead>
<tr>
<th scope="col">Id</th>
</tr>
</thead>
<tbody>
<tr th:each="shop : ${shops}" th:if="${shop.status} == 'NON_ACTIVE'">
<th class="clickable-row" th:id="${shop.id}" th:text="${shop.id}" scope="row">d</th>
</tr>
</tbody>
</table>
</div>
Мне нужны элементы, когда статус магазина (shop.status == АКТИВНЫЙ) активен, отражен на первой вкладке, когда неактивен (shop.status == НЕАКТИВЕН), затем на второй. Но таблица на второй вкладке всегда пуста, независимо от данных.
—————————— решено
проблема заключалась в том, что я использовал
IReactiveDataDriverContextVariable shops = new ReactiveDataDriverContextVariable(shopService. getShopByUserId(userPrincipal.getId()), 1, 1);
в моем контроллере.
Ответ №1:
попробуйте это, но я думаю, что проблема в данных, полученных от контроллера, вы можете проверить, правильно ли получен НЕАКТИВНЫЙ
<table class="table table-hover">
<thead>
<tr>
<th scope="col">Id</th>
</tr>
</thead>
<tbody>
<tr th:each="shop : ${shops}" th:if="${#strings.equals(shop.status, 'ACTIVE')}">
<td class="clickable-row" th:id="${shop.id}" th:text="${shop.id}" scope="row">d</td>
</tr>
</tbody>
</table>
<table class="table table-hover">
<thead>
<tr>
<th scope="col">Id</th>
</tr>
</thead>
<tbody>
<tr th:each="shop : ${shops}" th:if="${#strings.equals(shop.status,
'NON_ACTIVE')}">
<td class="clickable-row" th:id="${shop.id}" th:text="${shop.id}"
scope="row">d</td>
</tr>
</tbody>
</table>
Комментарии:
1. тнх. Но проблема заключалась в том, что я использовал магазины IReactiveDataDriverContextVariable = новые магазины ReactiveDataDriverContextVariable(shopService. getShopByUserId(UserPrincipal.getId()), 1, 1); в моем контроллере.