我有一个包含3列的表,我从数据库中获取第一列中的值。
如果第一列的值包含 IN ,那么我放置一个" X"在同一行的相应第二列中,我会在 OUT 中放一个十字。
我的问题是,例如我在第一列的选项名称中有4个IN和4 OUT不是相同的顺序,我的检查失败,它只是通过循环并放置" X"在IN的前4行中,同样适用于" X"在前4行的OUT中。而不是离开行,它不包含 IN 或 OUT
<table border="5" ><tr>
<th>value</th>
<th>IN</th>
<th>OUT</th>
</tr>
<tr><td>
<c:forEach items="${abc}" var="user">
<option value="${user.name}">${user.name}</option><br>
</c:forEach>
</td>
<td>
<c:forEach items="${abc}" var="user">
<c:if test="${not fn:containsIgnoreCase(user.name, 'IN')}">
<option>X</option><br>
</c:if>
</c:forEach>
</td>
<td>
<c:forEach items="${abc}" var="user">
<c:if test="${not fn:containsIgnoreCase(user.name, 'OUT')}">
<option>X</option><br>
</c:if>
</c:forEach>
</td>
</tr>
</table>
答案 0 :(得分:1)
您问题的最佳解决方案是:
<c:forEach items="${abc}" var="user">
<c:choose>
<c:when test="${fn:containsIgnoreCase(user.name, 'IN')}">
<option>X</option><br>
</c:when >
<c:otherwise>
<option>Y</option>
</c:otherwise>
</c:choose>
</c:forEach>
答案 1 :(得分:0)
我得到了解决方案,将做2次测试,而不是一次。
<c:if test="${ fn:containsIgnoreCase(user.name, 'IN')}">
<option>X</option><br>
</c:if>
<c:if test="${fn:containsIgnoreCase(user.name, 'OUT')}">
<option></option><br>
</c:if>