有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何在jsp/jstl中使用选定值进行多重选择?

你好,我有一个用户有一些角色 使用者阶级

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; }
}

角色。阶级

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代表用户。角色。 但它不起作用,在jstl中有没有什么方式可以说“如果用户中的角色被选中了,那么角色被选中了”? 谢谢你的建议


更新

不知怎么的,它不起作用了,我在那门课上放了一个记录器,我有:

 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

共 (0) 个答案