Jsp 在EL表达式中比较数字似乎不起作用
在JSP中,我想比较两个变量 如果我这样做:Jsp 在EL表达式中比较数字似乎不起作用,jsp,if-statement,jstl,el,Jsp,If Statement,Jstl,El,在JSP中,我想比较两个变量 如果我这样做: <c:set var="pagerTotDisp" value="9"/> <c:if test="${pagerTotDisp > 8}"> <span>pagerTotDisp above 8</span> </c:if> PagerToDisp高于8 它按预期显示“PagerToDisp高于8” <c:set var="TotalPages" value="10"
<c:set var="pagerTotDisp" value="9"/>
<c:if test="${pagerTotDisp > 8}">
<span>pagerTotDisp above 8</span>
</c:if>
PagerToDisp高于8
它按预期显示“PagerToDisp高于8”
<c:set var="TotalPages" value="10"/>
<c:if test="${TotalPages > 2}">
<span>TotalPages above 2</span>
</c:if>
总页数超过2页
它按预期显示“PagerToDisp高于8”
<c:set var="TotalPages" value="10"/>
<c:if test="${TotalPages > 2}">
<span>TotalPages above 2</span>
</c:if>
但是如果我这样做了
<c:set var="pagerTotDisp" value="9"/>
<c:set var="TotalPages" value="10"/>
<c:if test="${TotalPages < pagerTotDisp}">
<span>This condition is not true. This text should not be displayed</span>
</c:if>
这种情况是不正确的。不应显示此文本
它显示“此条件不正确。不应显示此文本”
发生什么事了?
JSP是否不能在同一条件下处理两个变量
谢谢您正在对
的值
属性中的值进行硬编码。
将硬编码值视为字符串
。因此,EL也将其评估为字符串
。从词典学上看,9
大于10
,因为9
比1
处于更高的数字位置
有两种方法可以解决此问题:
Long
,而不是String
<c:set var="pagerTotDisp" value="${9}" />
<c:set var="TotalPages" value="${10}" />
它将这两个值视为字符串,并按字典顺序进行比较 试一试
这种情况是不正确的。不应显示此文本
谢谢!成功了。您可能希望添加需要添加的fmt标记库:
<c:set var="pagerTotDisp" value="${9}"/>
<c:set var="TotalPages" value="${10}"/>
<c:if test="${TotalPages < pagerTotDisp}">
<span>This condition is not true. This text should not be displayed</span>
</c:if>