(Thymeleaf) Объект содержит тип Set, как связать этот объект в форме для отправки с помощью thymeleaf - PullRequest
0 голосов
/ 31 января 2020

Я создаю объект класса модели (пользователь), этот объект содержит атрибут типа Тип (роли). У меня есть две роли id 1 (ADMIN) и 2 (MANAGER), я хочу создать форму, используя тимелист, для сохранения данных с такого рода объектами. Я думаю, что буду использовать чекбокс / ввод, но я не знаю как.

Извините за мой engli sh, если вы не понимаете.

Модель пользователя:

@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id", nullable = false)
private int id;

@Column(name = "email", nullable = false, unique = true)
private String email;

@Column(name = "password", nullable = false)
private String password;

@ManyToMany
@JoinTable(
        name = "aht_user_role",
        joinColumns = @JoinColumn(name = "user_id"),
        inverseJoinColumns = @JoinColumn(name = "role_id")
)
private Set<Role> roles;
//Get Set

Ролевая модель:

@Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    @Column(name = "id", nullable = false)
    private int id;

    @Column(name = "name", nullable = false)
    private String name;

    @ManyToMany(mappedBy = "roles")
    private Set<User> users;

Контроллер:

@RequestMapping(value = "/saveuser", method = RequestMethod.POST)
public String saveUser(@ModelAttribute("user") User user) {
    user.setPassword(passwordEncoder.encode(user.getPassword()));
    userService.save(user);
    return "redirect:/admin";
}

@RequestMapping("/edituser/{id}")
public ModelAndView editUser(@PathVariable(name = "id") int id) {
    ModelAndView mav = new ModelAndView("edit_user");
    User user = userService.get(id);
    mav.addObject("user", user);
    return mav;
}

HTML:

<form action="#" th:action="@{/saveuser}" th:object="${user}" method="post">
            <table class="table table-striped">

                <tr>
                    <td>ID User: </td>
                    <td><input class="form-control"  type="text" th:field="*{id}"
                        readonly="readonly" /></td>
                </tr>
                <tr>
                    <td>Email: </td>
                    <td><input class="form-control"  type="text" th:field="*{email}" /></td>
                </tr>

                <tr>
                    <td>Password:</td>
                    <td><input class="form-control"  type="text" th:field="*{password}" /></td>
                </tr>

                <tr>
                    <td>Roles:</td>

                       <!--  I stuck here!!! -->
                    <td><input class="form-control"  type="text" th:field="*{??????}" /></td>
                </tr>

                <tr>
                    <td colspan="2"><button class="btn btn-success" type="submit">Save</button></td>
                </tr>
            </table>
        </form>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...