jstl:核心标签用法

一、forEach
var:从集合中取出的当前对象
items:将被forEach迭代的集合对象,可以是list、set等
varStatus:当前迭代的的状态信息集合。包括的属性有:
[quote]
current:当前这次迭代的(集合中的)项
index:当前这次迭代从0开始的迭代索引
count:当前这次迭代从1开始的迭代计数
first:用来表明当前这轮迭代是否为第一次迭代,该属性为boolean类型
last:用来表明当前这轮迭代是否为最后一次迭代,该属性为boolean类型
[/quote]
begin:如果指定了items,那么迭代就从items[begin]开始进行迭代;如果没有指定items,那么就从begin开始迭代。它的类型为整数
end:如果指定了items,那么就在items[end]结束迭代;如果没有指定items,那么就在end结束迭代。它的类型也为整数
step:迭代的步长

代码举例:

<c:forEach var="box" items="${levelList}" varStatus="status">
<c:if test="${status.first}">
<input type="checkbox" name="level" value="${box.value}" onclick="showSubLevels(this,'subLevel')" <c:if test="${fn:contains(checkedLevels,box.value) }">checked</c:if>/>${box.label}
<span id="subLevel" style="<%=levels.indexOf("00")!=-1?"":"none"%>">
(
</c:if>
<c:if test="${!status.first && !status.last}">
<input type="checkbox" name="level" value="${box.value }" <c:if test="${fn:contains(checkedLevels,box.value) }">checked</c:if>/>${box.label }
</c:if>
<c:if test="${status.last}">
)
</span>
<input type="checkbox" name="level" value="${box.value }" <c:if test="${box.value=='1' && fn:contains(checkedLevels,',1') }">checked</c:if>/>${box.label }
</c:if>
</c:forEach>


二、choose
这是一个类型if...elseif else的表达。正好弥补了jstl没有if...else...的不足

<c:choose>
<c:when test="${objname.atrrName=='value'}">
when标签在choose里可以有多个...
</c:when>
<c:otherwise>
是不是有点像"else"
</c:otherwise>
</c:choose>


三、输出map集合
1、结合forEach来使用

<c:forEach items="${map}" var="entry">
<c:out value="${entry.key}" />
<c:out value="${entry.value}" />
</c:forEach>


2、在知道key值的情况下可以这们来用:
${map[keyvalue]}

如果是比较多且输出形式复杂的,可以用已知值做key,将复杂的数据封装到一个用户bean中。后台封装如下:

Object bean1 = new Object(pro1,pro2);
Object bean2 = new Object(pro1,pro2);
map.put("key1",bean1);
map.put("key2",bean2)
...


这样可以在页面中如下取值:

${map['key1'].pro1} //取出bean1,并输出其属性pro1的值
${map['key2'].pro2} //取出bean2,并输出其属性pro2的值
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值