1.JSTL简介
JSTL的全称:JSP Standard Tag Library,JSP的标准标签库
2.标签库
core:核心标签库,我们又称它为c标签
fn:函数标签库,需要结合EL表达式使用,里面定义了一些对字符串的操作
fmt:格式化标签库,里面定义了对时间、日期、数字的国际化
3.核心标签库
又称它为c标签,使用它需要导入两个jar包
taglibs-standard-impl-1.2.1.jar taglibs-standard-spec-1.2.1.jar
要使用c标签还需要导入核心标签库
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
常用的标签
out标签
<!-- out标签:用来向页面中输出一些内容 -->
<!-- value属性:用来设置要输出的内容,可以使用EL表达式 -->
<!-- default属性:用来指定当value属性值中是EL表达式并且无法输出内容时要显示的默认值 -->
<!-- escapeXml属性:用来设置是否解析xml标签,默认值是true,不解析标签,如果改为false,解析标签 -->
<c:out value="<h1>我要变大</h1>" default="你想输出的内容不存在" escapeXml="false"></c:out>
set标签
<!-- set标签:用来向域对象中添加属性 ,默认添加到page域中 -->
<!-- var属性:用来指定向域对象中添加属性的那个属性名 -->
<!-- value属性:用来指定添加到域对象中的属性值 -->
<!-- scope属性:用来设置添加到那个域中,可选值有:page,request,session,application -->
<c:set var="username" value="admin" scope="page"></c:set>
<c:set var="username" value="admin" scope="request"></c:set>
<c:set var="username" value="admin" scope="session"></c:set>
<c:set var="username" value="admin" scope="application"></c:set>
${pageScope.username }<br>
${requestScope.username }
remove标签
<!-- remove标签:用来将域对象中的属性移除,默认全域移除 -->
<!-- scope属性:用来设置要移除那个域中的属性,可选值有:page,request,session,application -->
<c:remove var="username" scope="page"/>
${pageScope.username }<br>
${requestScope.username }<br>
${sessionScope.username }<br>
${applicationScope.username }
if标签
<!-- if标签:与Java中的if语句类似 -->
<!-- test属性:接受一个布尔类型的值,如果为true才执行标签体中的内容 -->
<c:if test="${empty param.username }">
请输入用户名:
</c:if>
<c:if test="${not empty param.username }">
欢迎您,${param.username }
</c:if>
choose标签
<%
int age = 40;
request.setAttribute("age", age);
%>
<!-- choose标签:与Java中的if..else语句类似 -->
<!-- 多个when标签只执行一个,所有书写是一定要注意多个when标签的顺序 -->
<!-- when标签和otherwise标签不能脱离choose标签单独使用 -->
<c:choose>
<c:when test="${age > 30 }">
大龄剩女
</c:when>
<c:when test="${age > 20 }">
青春靓女
</c:when>
<c:when test="${age > 14 }">
花季少女
</c:when>
<c:otherwise>
小屁孩儿
</c:otherwise>
</c:choose>
forEach标签
<!-- forEach标签:与Java中的for循环类似 -->
<!--
begin属性:用来指定循环的开始,值不能小于0;end指定循环的结束;
var属性:设置一个属性值用来接收每次遍历的数,而且每次遍历的数会保存到page域中,var的属性值就是page
域中的那个属性名
-->
<!-- step属性:用来设置循环时的步长,默认值是1 -->
<c:forEach begin="1" end="10" var="index" step="1">
<a href="#">${index }</a>
</c:forEach>
<%
List list = new ArrayList();
list.add("刘涛");
list.add("蒋欣");
list.add("王子文");
list.add("杨紫");
list.add("王凯");
request.setAttribute("list", list);
%>
<!-- items属性:用来接收要变量的对象,通常是一个List -->
<c:forEach items="${list }" var="star">
${star }
</c:forEach>
JSTL的全称:JSP Standard Tag Library,JSP的标准标签库
2.标签库
core:核心标签库,我们又称它为c标签
fn:函数标签库,需要结合EL表达式使用,里面定义了一些对字符串的操作
fmt:格式化标签库,里面定义了对时间、日期、数字的国际化
3.核心标签库
又称它为c标签,使用它需要导入两个jar包
taglibs-standard-impl-1.2.1.jar taglibs-standard-spec-1.2.1.jar
要使用c标签还需要导入核心标签库
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
常用的标签
out标签
<!-- out标签:用来向页面中输出一些内容 -->
<!-- value属性:用来设置要输出的内容,可以使用EL表达式 -->
<!-- default属性:用来指定当value属性值中是EL表达式并且无法输出内容时要显示的默认值 -->
<!-- escapeXml属性:用来设置是否解析xml标签,默认值是true,不解析标签,如果改为false,解析标签 -->
<c:out value="<h1>我要变大</h1>" default="你想输出的内容不存在" escapeXml="false"></c:out>
set标签
<!-- set标签:用来向域对象中添加属性 ,默认添加到page域中 -->
<!-- var属性:用来指定向域对象中添加属性的那个属性名 -->
<!-- value属性:用来指定添加到域对象中的属性值 -->
<!-- scope属性:用来设置添加到那个域中,可选值有:page,request,session,application -->
<c:set var="username" value="admin" scope="page"></c:set>
<c:set var="username" value="admin" scope="request"></c:set>
<c:set var="username" value="admin" scope="session"></c:set>
<c:set var="username" value="admin" scope="application"></c:set>
${pageScope.username }<br>
${requestScope.username }
remove标签
<!-- remove标签:用来将域对象中的属性移除,默认全域移除 -->
<!-- scope属性:用来设置要移除那个域中的属性,可选值有:page,request,session,application -->
<c:remove var="username" scope="page"/>
${pageScope.username }<br>
${requestScope.username }<br>
${sessionScope.username }<br>
${applicationScope.username }
if标签
<!-- if标签:与Java中的if语句类似 -->
<!-- test属性:接受一个布尔类型的值,如果为true才执行标签体中的内容 -->
<c:if test="${empty param.username }">
请输入用户名:
</c:if>
<c:if test="${not empty param.username }">
欢迎您,${param.username }
</c:if>
choose标签
<%
int age = 40;
request.setAttribute("age", age);
%>
<!-- choose标签:与Java中的if..else语句类似 -->
<!-- 多个when标签只执行一个,所有书写是一定要注意多个when标签的顺序 -->
<!-- when标签和otherwise标签不能脱离choose标签单独使用 -->
<c:choose>
<c:when test="${age > 30 }">
大龄剩女
</c:when>
<c:when test="${age > 20 }">
青春靓女
</c:when>
<c:when test="${age > 14 }">
花季少女
</c:when>
<c:otherwise>
小屁孩儿
</c:otherwise>
</c:choose>
forEach标签
<!-- forEach标签:与Java中的for循环类似 -->
<!--
begin属性:用来指定循环的开始,值不能小于0;end指定循环的结束;
var属性:设置一个属性值用来接收每次遍历的数,而且每次遍历的数会保存到page域中,var的属性值就是page
域中的那个属性名
-->
<!-- step属性:用来设置循环时的步长,默认值是1 -->
<c:forEach begin="1" end="10" var="index" step="1">
<a href="#">${index }</a>
</c:forEach>
<%
List list = new ArrayList();
list.add("刘涛");
list.add("蒋欣");
list.add("王子文");
list.add("杨紫");
list.add("王凯");
request.setAttribute("list", list);
%>
<!-- items属性:用来接收要变量的对象,通常是一个List -->
<c:forEach items="${list }" var="star">
${star }
</c:forEach>