jsdevel
@jsdevel
Java разработчик. Хороший парень, наверное.

Каким образом получить Model из JSP в Spring MVC?

Привет. Значит проблема такая, передаю в JSP модели Role через ModelMap.
@RequestMapping(value = "/users/add", method = RequestMethod.GET)
    public String getPageAddUser(ModelMap model) {
        model.addAttribute("roles", roleService.readAll());
        return "user-action";
    }

Следующий шаг. Формирую JSP в котором формируются данные о User, а в select выбираю Roles данного user.
<form:form method="post" name="user" action="/users">
                <div class="input-group">
                    <span class="input-group-addon"><i class="glyphicon glyphicon-user"></i></span>
                    <input type="text" class="form-control form-control-sm" name="login" placeholder="Логин"
                                                   title="login" value="${user.login}"/>
                </div>

                <div class="input-group" style="margin-top: 10px; margin-bottom: 10px;">
                    <span class="input-group-addon"><i class="glyphicon glyphicon-lock"></i></span>
                    <input type="password" class="form-control form-control-sm" name="password" placeholder="Пароль"
                                                   title="password"/>
                </div>

               <select class="form-control selectpicker" title="Роли пользователя" name="roles" multiple> // user.getRoles();
                    <c:forEach items="${roles}" var="role">
                        <option name="title">${role.title}</option> 
                    </c:forEach>
                </select>

                <c:if test="${!empty user.login}">
                    <input type="submit" class="btn btn-primary"
                                                   style="width: 100%; margin-top: 20px;" value="Сохранить">
                </c:if>

                <c:if test="${empty user.login}">
                    <input type="submit" class="btn btn-success"
                                                  style="width: 100%; margin-top: 20px;" value="Добавить">
            </c:if>
</form:form>

Далее отправляю HTTP POST запрос и получаю следующую картину.
user.getLogin() - имеет имя.
user.getPassword() - имеет пароль.
user.getRoles() - имеет выбранные роли, но id == null
Вопрос, как вернуть с jsp Roles в которых будут id как и при передаче в jsp?
@RequestMapping(value = "/users", method = RequestMethod.POST)
    public String editUser(@ModelAttribute("user") User user) {

        for (Role role: user.getRoles()) {
            System.out.println(role.getId() + " " + role.getTitle()); // null admin
        }

        userService.create(user);

        return "redirect:/users";
    }
  • Вопрос задан
  • 460 просмотров
Решения вопроса 1
Так правильно!
<option name="title">${role.title}</option>
Где тут id-ник?!
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы