Как я могу сделать множественный выбор в JSP / JSTL с выбранным значением?
Здравствуйте, у меня есть пользователь с некоторыми ролями User.class
public class User {
private Long id;
private String firstName;
private String lastName;
private Set<Role> roles = new HashSet<Role>(0);
public Long getId () {return id; } public void setId (Long id) {this.id = id; }
public String getFirstName() { return this.firstName; }
public void setFirstName(String firstname) { this.firstName = firstname; }
public String getLastName() { return this.lastName; }
public void setLastName(String lastname) { this.lastName = lastname; }
public Set<Role> getRoles() { return this.roles; }
public void setRoles(Set<Role> roles) { this.roles = roles; }
}
Role.class
public class Role {
private Long id;
private String name;
public Long getId() { return id; }
public void setId(Long id) { this.id = id; }
public String getName() { return name; }
public void setName(String name) { this.name = name; }
}
в файле JSP я хочу сделать множественный выбор, который будет иметь все роли с выбранными значениями (роли, которые пользователь имеет).
Я попробовал это:
<select id="roles" name="roles" multiple="true" size="4">
<c:forEach items="${allRoles}" var="role">
<option value="${role.id}" <c:if test="${role.id == roleSelected.id}">selected</c:if> >${role.name}</option>
</c:forEach>
</select>
где allRoles представляют всю роль, roleSelected представляет user.roles. но это не работает, есть ли способ сказать что-то в jstl, как "если роль в user.roles затем выбран"? спасибо за любой совет.
Обновить:
почему-то не работает, я поставил регистратор в этом классе, у меня есть это:
public static boolean contains(Collection<?> collection, Object object) {
System.out.println("coll = " + collection.toString());
System.out.println("obj="+ object.toString());
System.out.println("res="+ collection.contains(object));
return collection.contains(object);
}
в журнале у меня есть это, это должно привести к истине во втором тесте:
coll = [Id :2;Code: TESTName: Temp Manager;Enabled: true;Comment: ;]
obj=Id :1;Code: ADMName: ADMIN;Enabled: true;Comment: For Adminstrators;
res=false
coll = [Id :2;Code: TESTName: Temp Manager;Enabled: true;Comment: ;]
obj=Id :2;Code: TESTName: Temp Manager;Enabled: true;Comment: ;
res=false
coll = [Id :2;Code: TESTName: Temp Manager;Enabled: true;Comment: ;]
obj=Id :3;Code: RHHName: TECHNOMEDIA;Enabled: true;Comment: Dfdf;
res=false
coll = [Id :2;Code: TESTName: Temp Manager;Enabled: true;Comment: ;]
obj=Id :4;Code: RESPONSName: Refd;Enabled: true;Comment: Sdsds;
res=false