Попытка передать мои данные с контроллера на страницу мода.
Следуя этой ссылке: https://qtzar.com/2017/03/24/ajax-and-thymeleaf-for-modal-dialogs/
Сначала: в контроллере простой метод запроса базы данных
@PostMapping("/showarea")
public String areaModel(Model model) {
LOG.info("/showarea");
List<Zona> zonas = zonaService.findAll();
model.addAttribute("area", zonas.get(0).getNom_ZONA());
LOG.info("area: " + zonas.get(0).getNom_ZONA());
return "modal::modalContents";
}
Я положил область в мою модель.
Во-вторых: я использовал пример из: https://v4-alpha.getbootstrap.com/components/modal/#modal-components
чтобы добавить текст.
<button type="button" class="btn btn-primary" data-toggle="modal"
data-target="#exampleModal">Launch demo modal</button>
<!-- Modal -->
<div class="modal fade" id="exampleModal" tabindex="-1" role="dialog"
aria-labelledby="exampleModalLabel" aria-hidden="true" th:fragment="modalContents">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="exampleModalLabel">Modal title</h5>
<button type="button" class="close" data-dismiss="modal"
aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
<p th:if="${area != null}" th:text="${area}" />
<p th:unless="${area == null}" >area == null</p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary"
data-dismiss="modal">Close</button>
<button type="button" class="btn btn-primary">Save
changes</button>
</div>
</div>
</div>
</div>
В-третьих: я в конце этого файла добавляю простой javascript из bootstrap плюс функцию ajax:
<script>
$('#exampleModal').on('show.bs.modal', function(event) {
var button = $(event.relatedTarget) // Button that triggered the modal
var recipient = button.data('whatever') // Extract info from data-* attributes
// If necessary, you could initiate an AJAX request here (and then do the updating in a callback).
// Update the modal content. We'll use jQuery here, but you could use a data binding library or other methods instead.
var modal = $(this)
modal.find('.modal-title').text('New message to ' + recipient)
modal.find('.modal-body input').val(recipient)
$.ajax({
type : 'POST',
url : "/showarea",
success : function(data) {
}
});
})
</script>
Я правильно получаю данные из базы данных, но я не могу показать данные на моей модной странице html.
ОБНОВЛЕНИЕ 1:
Невозможно показать данные в моем модальном формате. Например, я добавил
<div class="modal-body" id="areaValue">
<p id="area" th:if="${area != null}" th:text="${area}" />
</div>
в javascript:
$.ajax({
type : 'POST',
url : "/showarea",
success : function(data) {
$('#areaValue').html(data);
}
});
отладка с firebug Я получаю значения в модальных, но не показанных!!!
Я хотел бы показать список значений, но не смог показать простой текст...
Любые предложения?
Спасибо