JSTL本质上是对JSP里的Java代码标签化而已,而且还规避了异常处理。
foreach标签起到Java里for循环的作用。
set标签可以用于声明变量或者变量赋值。
EL表达式支持各种数值运算和字符串函数。
如果用Java代码就得这么写。
<%
int count=0;
for(Map map:items){
int opt_num=map.get("opt_num");
count+=opt_num;
}
%>
使用到的地方这么写<%=count%>
隐患,map获取键值对由空指针风险,取出来的值进行类型转换也会有异常出现。
我们可以使用JSTL重写上面那一段:
<c:set var="count" value="0"></c:set>
<c:forEach items="${items }" var="item">
<c:set var="count" value="${count+item.opt_num }"></c:set>
</c:forEach>
使用到的地方直接使用EL表达式${count}即可。