在JSP页面中声明JSTL标签:
<%
...
@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"
%>
![](https://i-blog.csdnimg.cn/blog_migrate/a41954a27d6ad96fa2c2cf816e677448.gif)
<%
...
@taglib prefix="x" uri="http://java.sun.com/jsp/jstl/xml"
%>
![](https://i-blog.csdnimg.cn/blog_migrate/a41954a27d6ad96fa2c2cf816e677448.gif)
<%
...
@taglib prefix="i18n" uri="http://java.sun.com/jsp/jstl/fmt"
%>
![](https://i-blog.csdnimg.cn/blog_migrate/a41954a27d6ad96fa2c2cf816e677448.gif)
<%
...
@taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql"
%>
![](https://i-blog.csdnimg.cn/blog_migrate/a41954a27d6ad96fa2c2cf816e677448.gif)
<%
...
@taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/function"
%>
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
核心标签库
1、流程控制:if,choose,when,otherwise
<c:if test="(这里放一个EL表达式)">xx</c:if>
<%
...
@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"
%>
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
<
c:if
test
="${!empty param.color}"
>
<
c:choose
>
<
c:when
test
="${param.color == 'red'}"
>
<
table
bgcolor
="red"
><
tr
><
td
>
</
td
></
tr
></
table
>
</
c:when
>
<
c:when
test
="${param.color == 'yellow'}"
>
<
table
bgcolor
="yellow"
><
tr
><
td
>
</
td
></
tr
></
table
>
</
c:when
>
<
c:when
test
="${param.color == 'blue'}"
>
<
table
bgcolor
="blue"
><
tr
><
td
>
</
td
></
tr
></
table
>
</
c:when
>
<
c:otherwise
>
<
h2
>
No choice
</
h2
>
</
c:otherwise
>
</
c:choose
>
</
c:if
>
<
form
>
<
input
type
="radio"
name
="color"
value
="red"
><
font
color
="red"
>
red
</
font
></
input
><
br
>
<
input
type
="radio"
name
="color"
value
="yellow"
><
font
color
="yellow"
>
yellow
</
font
></
input
><
br
>
<
input
type
="radio"
name
="color"
value
="blue"
><
font
color
="blue"
>
blue
</
font
></
input
><
br
>
<
input
type
="submit"
/>
</
form
>
2、迭代:forEach
遍历集合
<c:forEach var="i" items="${collection}" varStatus="index">
${i} ${index} <!--i为集合中单个元素,index为循环状态 -->
</c:forEach>
遍历Map
<c:forEach var="m" items="${map}">
key=${m.key},value=${m.value}
</c:forEach>
打印1到10
<c:forEach var="i" begin="1" end="10" step="1">
${i}
</c:forEach>
<%
...
@page import="tarena.jstl.Student,java.util.*"
%>
![](https://i-blog.csdnimg.cn/blog_migrate/a41954a27d6ad96fa2c2cf816e677448.gif)
<%
...
@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"
%>
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a41954a27d6ad96fa2c2cf816e677448.gif)
<%
...
Collection students = new ArrayList();
students.add(new Student("001","zhangsan",23));
students.add(new Student("002","lisi",22));
students.add(new Student("003","wangwu",21));
request.setAttribute("stus", students);
%>
<
table
border
="1"
>
<
c:forEach
var
="stu"
items
="${stus}"
>
<
tr
><
td
>
${stu.id}
</
td
>
<
td
>
${stu.name}
</
td
>
<
td
>
${stu.age}
</
td
>
</
tr
>
</
c:forEach
>
</
table
>
<
h2
>
![](https://i-blog.csdnimg.cn/blog_migrate/a41954a27d6ad96fa2c2cf816e677448.gif)
<%
...
Map stus = new HashMap();
stus.put("001", new Student("001","zhangsan",23));
stus.put("002", new Student("002","lisi",22));
stus.put("003", new Student("003","wangwu",21));
request.setAttribute("stumap", stus);
%>
<
c:forEach
var
="stu"
items
="${stumap}"
>
${stu.value.id} ${stu.value.name} ${stu.value.age}
<
br
>
</
c:forEach
>
<
hr
>
<
c:forEach
items
="${stus}"
varStatus
="status"
>
${status.count} ${status.current.name} ${status.current.age}
<
br
>
</
c:forEach
>
<
hr
>
<
c:forEach
var
="i"
begin
="0"
end
="2"
step
="1"
>
No.${i} ${stus[i].id} ${stus[i].name} ${stus[i].age}
<
br
>
</
c:forEach
>
</
h2
>