1.什么是JSTL
从JSP 1.1规范开始,JSP就支持使用自定义标签,使用自定义标签大大降低了JSP页面的复杂度,同时增强了代码的重用性。为此,许多Web应用厂商都定制了自身应用的标签库,然而同一功能的标签由不同的Web应用厂商制定可能是不同的,这就导致市面上出现了很多功能相同的标签,令网页制作者无从选择。为了解决这个问题,Sun公司制定了一套标准标签库( JavaServer Pages Standard Tag Library ),简称JSTL。
2.测试JSTL
由于在测试的时候使用的是<c:out>标签,因此,需要使用taglib指令导入Core标签库
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
使用JSTL标签库时需要导入jstl.jar和standard.jar文件
a.编写一个名为test.jsp的文件测试使用了JSTL标签
2.JSTL中的Core标签库
语法1:
<c:out value="value" [default="defaultValue"]
[escapeXml="{true|false}"]
语法2:
<c:out value="value" [escapeXml="{true|false}"]>
defaultValue
</c:out>
a.创建c_out1.jsp
浏览器窗口输出了两个默认值均为unknown,这是通过使用<c:out>标签的default属性以及标签体两种方式来设置的默认值,这两种方式实现的效果相同。由于在客户端访问C_ _out1.jsp页面时,并没有传递username 参数,所以表达式${param.username}的值为null,因此,<c:out>标签就会输出默认值。
如果不想让<c:out>标签输出默认值,可以在客户端访问c_out1.jsp 页面时传递一个 参数,在浏览器地址栏中输入"http://localhost:9490/chapter07/c_out1.jsp?username=zhangtongxue"
3.<c:if>标签
语法1:
<c:if test="testCondition" var="result"
[scope="{page|request|session|application}"]/>
语法2:
<c:if test=" testContion" var="result" [scope="{page|request|session|application}"]>
body content
</c:if>
a.创建c_if.jsp文件
4. <c:choose>标签
a.创建c_choose
在访问c_choose.jsp时,传递一个参数username=zhangtongxue
5.<c:forEach>标签
语法一:迭代包含多个对象的集合
<c:forEach [var="varName"] items="collection" [varStatus="varStatusName"] [begin="begin"] [end="end"] [step="step"]>
body content
</c:forEach>
语法二:迭代指定范围内的集合
<c:forEach [var="varName"] [varStatus="varStatusName"] begin="begin" end="end" [step="step"]>
body content
</c:forEach>
a.创建c_foreach1.jsp
b.创建c_foreach2.jsp
c.创建c_foreach3.jsp
6.<c:param>标签和<c:url>标签
<c:param>标签用于在URL地址中附加参数,它通常嵌套在<c:url>标签内使用。
语法一:
<c:param name="name" value="value">
语法二:
<c:param name="name" >
parameter value
</c:param>
在访问一个JSP页面时,通常会在URL中传递一些参数信息。为了方便完成这种功能,Core标签库中提供了一个<c:url>标签,该标签可以在JSP页面中构造一个新的地址,实现URL的重写。
语法一:
<c:url value="value" [context="context"] [var="varName"] [scope="${page|request|session|application }"]>
语法二:
<c:url value="value" [context="context"] [var="varName"] [scope="${page|request|session|application }"]>
<c:param>标签
</c:url>
a.创建c_url.jsp
绝对路径登录页面
相对路径登录页面