<c:forEach var="healthp" items="${healthparam}" >
<tr>
<td><c:out value="${healthp.name}"/></td>
<td><c:out value="${healthp.current_Reading}"/></td>
<td><c:out value="${healthp.target}"/></td>
<td><c:out value="${healthp.measurementunit}"/></td>
<td><c:out value="${healthp.target}"/></td>
<td><c:out value="${healthp.recorddate}"/></td>
</tr>
</c:forEach>
在此我想比较Current_Reading和目标。 如果当前读数具有更高的值,那么我只想在该(Current_Reading)列中显示,否则我想在目标列上显示它。 任何帮助表示赞赏
答案 0 :(得分:3)
您可以使用c:if标记。如果我理解正确并且您想隐藏current_Reading或target中的值(以较低者为准),那么它可能如下所示:
<td><c:out value="${healthp.name}"/></td>
<td>
<c:if test="${healthp.current_Reading > healthp.target}">
<c:out value="${healthp.current_Reading}"/>
</c:if>
</td>
<td><c:out value="${healthp.target}"/></td>
<td><c:out value="${healthp.measurementunit}"/></td>
<td>
<c:if test="${healthp.current_Reading <= healthp.target}">
<c:out value="${healthp.target}"/>
</c:if>
</td>
<td><c:out value="${healthp.recorddate}"/></td>
这将为您留下一个空列,如果这是您正在寻找的内容。
答案 1 :(得分:1)
使用表达式语言时可以使用eq以及ne,lt等。
<c:if test="${var1 eq var2}">some code</c:if>
答案 2 :(得分:0)
我相信这种技术正是你所寻求的。 “三元”运算符是一种在单列中显示两个值中较高值的简洁方法:
<c:forEach var="healthp" items="${healthparam}" >
<tr>
<td><c:out value="${healthp.name}"/></td>
<td><c:out value="${healthp.current_Reading > healthp.target ? healthp.current_Reading : healthp.target}"/></td>
<td><c:out value="${healthp.measurementunit}"/></td>
<td><c:out value="${healthp.target}"/></td>
<td><c:out value="${healthp.recorddate}"/></td>
</tr>
</c:forEach>
附注:大多数现代JSP实现不再需要c:out,因此您可以通过这样做使代码更具可读性:
<c:forEach var="healthp" items="${healthparam}">
<tr>
<td>${healthp.name}</td>
<td>${healthp.current_Reading > healthp.target ? healthp.current_Reading : healthp.target}</td>
<td>${healthp.measurementunit}</td>
<td>${healthp.target}</td>
<td>${healthp.recorddate}</td>
</tr>
</c:forEach>