Невозможно заменить параметризованные значения фрагмента на интерфейсе с помощью Thymeleaf и Spring Boot. - PullRequest
0 голосов
/ 09 мая 2020

Я хочу полностью заменить некоторые элементы веб-страницы, используя параметризованные фрагменты с ThymeLeaf + Spring Boot.

public class Admin {

private Integer id;

public Admin(Integer id) {
    this.id = id;
}

public Integer getId() {
    return id;
}

public void setId(Integer id) {
    this.id = id;
}

@Override
public String toString() {
    return "Admin{" +
            "id=" + id +
            '}';
}

}

@Controller

publi c класс AdminController {

@GetMapping("/admin-reload")
public String reloadElementDiv(Model model) {
    Admin adminObj = new Admin(3);
    model.addAttribute("adminObj", adminObj);
    model.addAttribute("id", adminObj.getId());
    return "/fragments/adminForm";
}

}

ресурсы / шаблоны / фрагменты / adminForm. html

<div th:fragment="admin_form(adminObj, id)" >
    <form th:object="${adminObj}">
        <p th:text="${id}"></p>
    </form>
</div>

ресурсы / шаблоны / индекс. html

<div th:fragment="admin_form(adminObj, id)">
</div>

в одну сторону:

<div th:replace="fragments/adminForm :: admin_form(adminObj, id)" th:with="adminObj='${adminObj}', id='${id}'">
    <p th:text="${id}"></p>
</div>

или в другую сторону:

<div th:replace="fragments/adminForm :: admin_form(adminObj, id)">
    <p th:text="${id}"></p>
</div>

Итак, в результате у меня есть только параметр 'id' в моем index. html веб-странице, но не его значение id = 3, как я установил в классе контроллера. Может ли кто-нибудь помочь мне получить то значение, которое мне нужно?

...