您的位置:首页 > Web前端 > JavaScript

JSP——JSTL核心标签(2)

2016-07-10 18:08 537 查看

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
属性来指定要循环的集合。

另外,我们也可以在这里指定
begin
end
step
属性,来指定输出哪些对象。

(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}; 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>


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

2.Url相关的标签

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

主要有:

(1)
<c:param>
标签,用来给包含或者重定向的页面传递参数

(2)
<c:redirect>
标签,重定向至一个新的URL

(3)
<c:url>
标签,使用可选的查询参数来创造一个URL

这几个标签的用法都比较简单。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: