gpt4 book ai didi

java - 多对多检查一个列表是否包含另一个列表的元素

转载 作者:行者123 更新时间:2023-12-02 05:18:59 24 4
gpt4 key购买 nike

我有两个实体:具有多对多关系的商店运输。我有用于编辑商店实体的页面,用户可以在其中查看商店的运输列表,例如复选框。

向用户显示我正在使用的所有传输方式:

<c:forEach items="${transports}" var="transport">
<div class="checkbox">
<label>
<input type="checkbox" value="${transport.id}"> ${transport.name}
</label>
</div>
</c:forEach>

此外,在此页面上,我有一个对象商店,可以获取商店的交通工具列表。问题是当我显示所有交通工具列表时,我想将商店的交通工具标记为已检查。因此,用户将能够看到哪些交通工具属于商店,哪些不属于商店。

不知道如何在我的循环中检查它。提前致谢。

已编辑

public boolean hasTransport(Transport transport, Integer id) {
boolean result = false;
for (Shop shop : transport.getShops()) {
if (shop.getId().equals(id)) {
result = true;
break;
}
}
return result;
}

并在jsp页面上检查:

<c:forEach items="${transports}" var="transport">
<div class="checkbox">
<label>
<c:choose>
<c:when test="${shop.hasTransport(transport, shop.id)}">
<input type="checkbox" checked name="transportsId" value="${transport.id}"> ${transport.name}
</c:when>
<c:otherwise>
<input type="checkbox" name="transportsId" value="${transport.id}"> ${transport.name}
</c:otherwise>
</c:choose>
</label>
</div>
</c:forEach>

最佳答案

向商店添加方法:

公开课商店{

......


private Set<Transport> transports;


public boolean hasTransport(Transport transport){
//check if Set contains specified transport
//implement equals/hasCode or iterate and check the Ids

}

.....

}

如果您的应用程序符合 Servlet Spec 3 规范,您可以从 EL 调用它:

<c:forEach items="${transports}" var="transport">
<div class="checkbox">
<label>
<input type="checkbox" value="${transport.id}" checked="${shop.hasTransport(transport)}"/> ${transport.name}
</label>
</div>
</c:forEach>

关于java - 多对多检查一个列表是否包含另一个列表的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26657795/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com