JSP 标准标签库(JSTL)
JSP标准标签库(JSTL)是一个JSP标签集合,它封装了JSP应用的通用核心功能。
JSTL支持通用的、结构化的任务,比如迭代,条件判断,XML文档操作,国际化标签,SQL标签。 除了这些,它还提供了一个框架来使用集成JSTL的自定义标签。
根据JSTL标签所提供的功能,可以将其分为5个类别。
- 核心标签
- 格式化标签
- SQL标签
- XML标签
- JSTL函数
详情查看http://www.runoob.com/jsp/jsp-jstl.html,用的时候再看就行,就是一种工具。
下面是核心标签库测试代码,其他类型就不一一测试了
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://"
+ request.getServerName() + ":" + request.getServerPort()
+ path + "/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'testJSTL.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
<!-- jstl核心标签库测试 -->
<div>
<h1>
c:out 实例:
<c:out value="我是out" escapeXml="true" default="我是默认值"></c:out>
</h1>
<h1>
c:out 实例:
<c:out value="${asdasdfa}" escapeXml="true" default="我是默认值"></c:out>
</h1>
</div>
<div>
<c:set value="更新" var="text" scope="page"></c:set>
<c:set value="update" var="action" scope="request"></c:set>
<h1>c:set 实例:${pageScope.text}</h1>
<h1>c:set 实例:${requestScope.action}</h1>
</div>
<div>
<c:remove var="text" scope="page"></c:remove>
<h1>c:remove 实例:${pageScope.text}</h1>
</div>
<div>
<c:catch var="catchException">
<%
int i = 1 / 0;
%>
</c:catch>
<c:if test="${catchException!=null }">
<h1>c:catch 异常名称:${catchException}</h1>
<h1>c:catch 异常信息:${catchException.message}</h1>
</c:if>
</div>
<div>
<h1>
choose when otherwise实例:
<c:choose>
<c:when test="${requestScope.action=='update' }">
<c:out value="我系when啦~"></c:out>
</c:when>
<c:otherwise>
<c:out value="我系otherwise啦~"></c:out>
</c:otherwise>
</c:choose>
</h1>
</div>
<!-- 相当于jsp:include -->
<div>
<c:import var="data" url="testCImport.jsp" />
<h1>
<c:out value="${data }"></c:out>
</h1>
</div>
<!-- c:foreach有两种写法对应两种for循环 -->
<div>
<h1>
c:foreach实例:
<c:forEach var="i" begin="1" end="5" step="2">
item:<c:out value="${i}"></c:out>
</c:forEach>
</h1>
</div>
<div>
<h1>
c:foreach实例:
<c:forEach items="${applicationScope.userList }" var="user">
itemId:<c:out value="${user.id}"></c:out>
itemName:<c:out value="${user.name}"></c:out>
</c:forEach>
</h1>
</div>
<div>
<h1>
c:forTokens实例:
<c:forTokens items="com,cn,net" delims="," var="name">
name:<c:out value="${name }"></c:out>
</c:forTokens>
</h1>
</div>
<div>
<h1>
c:url c:param实例:
<c:url var="hrefUrl" value="testEL.jsp">
<c:param name="username" value="wu"></c:param>
<c:param name="password" value="123456"></c:param>
</c:url>
<a href="${hrefUrl }">链接测试</a>
</h1>
</div>
</body>
</html>
总结
如果用熟了,还是挺好用的,但开发不一定用。