Как использовать объект ResponseEntity в модале thymeleaf - PullRequest
0 голосов
/ 06 апреля 2019

У меня есть весенняя страница MVC, имеющая несколько строк, как показано ниже

https://imgur.com/a/gNUFkbf

Ссылка 'Подробности' генерируется внутри цикла

<a href="#" class="btn btn-secondary" id="updateCategory"
th:onclick="'javascript:openModal(\'' + ${category.id} + '\');'">
<i class="fas fa-angle-double-right"></i> Details 

Код для функции openModal:

function openModal(id) {
    $.ajax({
        url : "/admin/categories/update?catId=" + id,
        success : function(data) {
            $("#addCategoryModal").modal("show");
        },
        error : function(data) {
        }
    });
};    

Код контроллера:

@GetMapping(value = "/update", produces = "application/json")
@ResponseBody
public ResponseEntity<Category> getUser(@RequestParam("catId") int id) {
        Category category = categoryService.findOne(id);
        if (category == null) {
            return new ResponseEntity<Category>(HttpStatus.NOT_FOUND);
        }
        return new ResponseEntity<Category>(category, HttpStatus.OK);
    }    

Мне бы хотелось, чтобы при нажатии кнопки сведений открывалось модальное окно с предварительно заполненными данными из объекта категории, которые возвращаются из контроллера.

У меня вопрос: приведенный выше код выполняется нормально, и в результате вызова ajax я получаю объект json в функции javascript, как я могу использовать его для заполнения модальной формы? Могу ли я каким-то образом установить значение th:object="${category}", используя возвращенный объект json из контроллера?

Код для модальной формы:

<form action="#" th:action="@{/admin/category/save}"
                    th:object="${category}" method=post>

                    <div class="form-group">
                        <input type="hidden" th:field="*{id}" /> <label for="title">Title</label>
                        <input type="text" th:field="*{categoryName}"
                            class="form-control mb-1" placeholder="Enter Category Name"
                            id="categoryName"></input>
                        <div class="error" id="categoryNameError"></div>
                    </div>
                    <div class="modal-footer">
                        <button type="submit" class="btn btn-success" id="saveCategory">Save
                            Changes</button>
                    </div>
                </form>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...