Мне известно, что th: selected нельзя использовать, когда у тега есть атрибут th: field.Я предполагаю, что это потому, что тэг th: field может обработать то, что было выбрано, увидев, содержит ли список, который относится к полю, этот элемент.
Проблема в том, что все, что происходит за кулисами, этоне работает правильно, поэтому я хотел бы переопределить его.
Это не работает в том смысле, что кажется, что он не может правильно определить, что должно отображаться как выбранное из спискаполиморфных объектов.В итоге выбирается один подкласс пользователя и показывается только, если он выбран (игнорируя другие подклассы)
Итак, что я хотел бы знать, так это либо способ выбора того, что выбрано сам (которым я являюсь)может сделать это) и передать это в поле th: или любую информацию о чем-либо, что я мог бы упустить при работе с полиморфными классами в тимелист.
Ниже приведен пример того, что у меня уже есть
<select class="toMark" id="toMark" th:field="*{assessments[__${a.index}__].markerDtos[__${m.index}__].toMark}" multiple="multiple">
<option th:each="user : *{unit.cohort}" th:value="${{user}}" th:id="${{user}}" th:text="${user.userName}"></option>
</select>
Класс пользователя
@Entity
@Table(name = "Users")
@Inheritance(strategy=InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(name="perms", discriminatorType=DiscriminatorType.STRING)
public abstract class User implements Serializable {
/**
*
*/
private static final long serialVersionUID = -6187306015251367488L;
@Id @GeneratedValue(strategy=GenerationType.IDENTITY)
private Long id;
private String userName;
private String password;
@ManyToMany(mappedBy = "members")
private List<Group> groups = new ArrayList<>();
@OneToMany(mappedBy = "accountable")
private List<SoloTask> soloTasks = new ArrayList<>();
@ManyToMany(mappedBy = "cohort")
private List<Unit> units = new ArrayList<>();
//Getters and setters...
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
User other = (User) obj;
return id != null && id.equals(other.getId());
}
public int hashCode() {
return 13;
}
}
Заранее спасибо,
Yepadee