JSP——JSTL核心标签(2)

24 篇文章 15 订阅
5 篇文章 1 订阅

1.迭代标签

1.1 <c:forEach>标签

<c:forEach>在一个Collection中迭代计算他的body内容,或是重复迭代固定的次数。
(1)最简单的迭代标签

<c:forEach var="i" begin="1" end="10">
        <c:out value="${i}"></c:out>-->
</c:forEach>

在这里,var代表当前条目的变量名称,begin指的是开始的元素,end指结束的元素,两者都包含在内。
它的输出是这样的:

输出

另外,我们也可以通过step属性来指定步长,如下:

<c:forEach var="i" begin="1" end="10" step="2">
        <c:out value="${i}"></c:out>-->
</c:forEach>

这里表示输出的是1到10之间的所有奇数。

(2)迭代一个ArrayList集合

假设我们在requestScope中放入了一个ArrayList,中间加入的是User对象,如下:

<%
ArrayList<User> array = new ArrayList<User>();
User user1 = new User();
user1.setName("u1");
user1.setAge(20);

User user2 = new User();
user2.setName("u2");
user2.setAge(21);

User user3 = new User();
user3.setName("u3");
user3.setAge(22);

array.add(user1);
array.add(user2);
array.add(user3);

request.setAttribute("users", array);
%>

我们利用forEach标签可以很简单的输出这个ArrayList集合中的内容,如下:

<c:forEach items="${users}" var="user">
    <c:out value="${user.name}"></c:out>
    <c:out value="${user.age}"></c:out>
    <br>
</c:forEach>

这里用items属性来指定要循环的集合。
另外,我们也可以在这里指定beginendstep属性,来指定输出哪些对象。

(3)迭代一个HashMap

假设我们上面的User都是放在HashMap中的,如下:

<%
Map<String,User> map = new HashMap<String,User>();
User user1 = new User("小明",12);
User user2 = new User("小强",13);
User user3 = new User("小华",14);
map.put("aa", user1);
map.put("bb", user2);
map.put("cc", user3);
request.setAttribute("persons",map);
%>

那么,我们可以通过如下方式迭代:

<c:if test="${empty persons}">
    没有人!
</c:if>
<c:forEach items="${persons}" var="person">
    key = ${person.key};&nbsp;value=${person.value.name},${person.value.age}岁
    <br>
</c:forEach>

其实,与ArrayList的迭代方式类似,只是,这里通过var.key返回HashMap中的Key值,通过var.value返回HashMap中的Value值,Value也可以是一个对象,如本例。

另外,注意EL表达式中empty判断的用法!

1.2 <c:forTokens>标签

<c:forTokens>标签可以根据某个分隔符分隔指定字符串。
比如:

<%
    request.setAttribute("abc", "12;56;你好;Gavin");
%>
<c:forTokens items="${requestScope.abc}" delims=";" var="temp">
    ${temp}
</c:forTokens>

另外,这里也可以指定beginendstep属性。与前述类似。

2.Url相关的标签

Url标签就是和页面导航,重定向,资源获得,参数传递相关的标签。

主要有:
(1)<c:param>标签,用来给包含或者重定向的页面传递参数
(2)<c:redirect>标签,重定向至一个新的URL
(3)<c:url>标签,使用可选的查询参数来创造一个URL

这几个标签的用法都比较简单。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值