我需要根据从arraylist中获取的值来表示列。
<c:forEach items="${row}" var="cell">
<c:if test="${(cell != 'Read') || (cell !='Write')}" >
<td id="access">${cell}</td>
</c:if>
<c:if test="${(cell == 'Read') || (cell =='Write')}" >
<td>${cell}</td>
</c:if>
</c:forEach>
我有3种类型的值进入单元格 - 读取,写入和其他。对于Others,它进入!= condition,但对于Read和Write,它同时满足if语句。我无法使用if-else。 提前致谢
答案 0 :(得分:2)
如果您的代码中的第二个IF为ELSE,则以下是代码的等效if-else语句。
<c:forEach items="${row}" var="cell">
<c:choose>
<c:when test="${cell ne 'Read' or cell ne 'Write'}">
<td id="access">${cell}</td>
</c:when>
<c:otherwise>
<td>${cell}</td>
</c:otherwise>
</c:choose>
</c:forEach>
检查IF中的条件语句。正如voidnnull指出你的第一个IF而不是使用|| (或)使用&amp;&amp; (和)。
答案 1 :(得分:0)
这是因为您在第一个测试条件下使用||
运算符。
使用&amp;&amp;运算符,它将按预期工作。
<c:if test="${(cell != 'Read') && (cell !='Write')}" >
此外,对于使用JSTL的if-else构造,请使用<c:choose>
标记,您可以在其下使用<c:when>
和<c:otherwise>
。它们的工作方式与if-else类似。
示例:http://www.exampledepot.com/egs/javax.servlet.jsp.jstl.core/if.html