Передает null, когда принимаю из jsp список

159
14 апреля 2018, 21:47

Вот на jsp select

<select name="roles" id="inputRole" class="form-control selectpicker show-tick"
        data-max-options="3" title="Список ролей" multiple="multiple"
        data-width="300px" data-size="5" data-live-search="true"
        data-live-search-placeholder="Поиск">
  <c:forEach var="role" items="${listRole}">
    <option value="${role.id}"
      <c:forEach var="userRole" items="${userModel.roles}">
        <c:choose>
          <c:when test="${role.name eq userRole.name}">
            selected
          </c:when>
        </c:choose>
      </c:forEach>
    ><c:out value="${role.name}"/></option>
  </c:forEach>
</select>

Вот мой User

public class User extends Model {
    @NotBlank(message = "Введите правильный логин или поле <Логин> не заполнено")
    private String login;
    @NotBlank(message = "Введите правильный пароль или поле <Пароль> не заполнено")
    private String password;
    //@NotBlank(message = "Поле <ФИО> не заполнено")
    private String name;
    @DateTimeFormat(pattern="yyyy-MM-dd")
    //@NotBlank(message = "Поле <Дата> не заполнено")
    private Date date;
    private int age;
    //@NotBlank(message = "Поле <Зарплата> не заполнено")
    private Integer salary;
    //@NotBlank(message = "Поле <Роли> не заполнено")
    private List<Role> roles;
    public User() {
        super();
    }
    public User(int id, String name, String password, Date date, String login, int age, int salary) {
        super(id);
        this.name = name;
        this.password = password;
        this.date = date;
        this.login = login;
        this.age = age;
        this.salary = salary;
    }
    public void setAge(int age) {
        this.age = age;
    }
    public void setSalary(Integer salary) {
        this.salary = salary;
    }
    public void setPassword(String password) {
        this.password = password;
    }
    public void setName(String name) {
        this.name = name;
    }
    public void setDate(Date date) {
        this.date = date;
    }
    public void setLogin(String login) {
        this.login = login;
    }
    public void setRoles(List<Role> roles) {
        this.roles = roles;
    }
    public String getPassword() {
        return password;
    }
    public String getName() {
        return name;
    }
    public Date getDate() {
        return date;
    }
    public String getLogin() {
        return login;
    }
    public int getAge() {
        return age;
    }
    public Integer getSalary() {
        return salary;
    }
    public List<Role> getRoles() {
        return roles;
    }
    @Override
    public String toString() {
        return "User{" +
                "name='" + name + '\'' +
                ", password='" + password + '\'' +
                ", date=" + date +
                ", login='" + login + '\'' +
                ", age=" + age +
                ", salary=" + salary +
                ", roles=" + roles +
                '}';
    }
}

Вот где пытаюсь принять user, @Valid @ModelAttribute User user - roles на debug передает null, @RequestParam их не будет, пока не убрал проверяю, что в них попадает.

@RequestMapping(value = "/admin/saveRecord.jhtml", method = RequestMethod.POST)
public String postSaveRecord(
        Model model,
        @Valid @ModelAttribute User user,
        BindingResult result,
        @RequestParam(value = "id", required = false ) String idParam,
        @RequestParam(value = "login" , required = false) String loginParam,
        @RequestParam(value = "name", required = false) String nameParam,
        @RequestParam(value = "date", required = false) String dateParam,
        @RequestParam(value = "password", required = false) String passwordParam,
        @RequestParam(value = "salary", required = false) String salaryParam,
        @RequestParam(value = "roles", required = false) String [] rolesParam
) throws IOException {
    List<String> errorList = new ArrayList<>();
    model.addAttribute("errorList", errorList);
    User user2 = new User();
    ...
}
READ ALSO
Наследование по ArrayList

Наследование по ArrayList

Хочу создать класс, наследуемый по классу ArrayList и переопределить его методы ( допустим добавить в методadd() счётчик, который будет подсчитывать...

144
Как загрузить файл в SoundPool по URI?

Как загрузить файл в SoundPool по URI?

Как загрузить звук в soundpool из URI? Сейчас таким методом не работаетХотя из raw все грузит

197
Java рекурсия stackoverflow exception

Java рекурсия stackoverflow exception

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

166