JSTL标签概述
分类:
core标签库(核心标签库),包括有通用标签(输出标签)、流控制标签和循环控制标签等。
fmt标签库,格式化、国际化标签库。
fn标签库,函数标签库。
XML标签库,关于XML操作的标签库。
SQL标签库,操作数据库的标签库。
JSTL的core标签库
<c:set>标签用于在某个范围中设定某个值,这个范围可以是request、page、session、application。
<c:set value=“表达式” var=“varname”[scope=“request|page|session|application”]>
<c:out>标签用于把表达式的结果输出到页面中,escapeXML默认值是true,将特殊字符转换:<转换成<,>转换为>。
<c:out value="表达式“[escapeXML=“true|false”]>
<c:if>标签用于条件判断,var参数是条件的执行结果(true/false)。
<c:if test=“判断条件” [var=“varname”][scope=“request|page|session|application”]>
<c:choose/>、<c:when/>、<c:otherwise/>标签。当<c:when/>判断为假时,才会执行<c:otherwise/>标签。
<c:choose>
----<c:when test=”表达式”>
---------表达式为真时执行的语句
----</c:when>
----[<c:otherwise> 表达式为假时执行的语句]
</c:choose>
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE HTML >
<html>
<head>
<title><c:forEach>标签使用例子</title>
</head>
<body>
<%
List<String> nameLists = new ArrayList<String>();
nameLists.add("Toms");
nameLists.add("Smith");
nameLists.add("John");
nameLists.add("Anna");
nameLists.add("James");
nameLists.add("Roses");
nameLists.add("Bruce");
request.setAttribute("nameLists",nameLists);
%>
<div style="text-align: center;">
输出集合中的内容:<hr/>
<c:forEach items="${nameLists}" var="name" varStatus="currentStatus">
当前元素为:<c:out value="${name}"/>
当前元素索引号为:<c:out value="${currentStatus.index}"/>
当前迭代数为:<c:out value="${currentStatus.count}"/>
<c:if test="${currentStatus.first}">第一次循环操作</c:if>
<c:if test="${currentStatus.last}">最后一次循环操作</c:if>
<hr/>
</c:forEach>
</div>
</body>
</html>
<c:forTokens>标签用于对字符串进行分隔,类似Java中split方法。
<c:forTokens items=“字符串” delims=“分隔符” [var=“别名”][varStatus=”varstatusName”] [begin=”开始”] [end=”结束”] [step=”步长”]>
----java代码,HTML代码等
</c:forTokens>
<c:remove var=“varname”[scope=“request|page|session|application”]>
<c:catch>类似于Java中try…catch
<c:import>标签的作用是把当前JSP页面之外的静态和动态文件导入进来,甚至可以是其他网站的文件。而 < < <jsp:include > > >只能导入当前JSP页面在同一Web应用下的文件。
JSTL的fmt标签
JSTL的fn标签库
JSTL的SQL标签库
<%@ page import="java.io.*,java.util.*,java.sql.*" pageEncoding="UTF-8"%>
<%@ page import="javax.servlet.http.*,javax.servlet.*" %>
<%@ page import="java.util.Date,java.text.*" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql"%>
<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<html>
<head>
<title>sql标签综合示例</title>
</head>
<body>
<!-- 设置数据源-->
<sql:setDataSource var="test" driver="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/TEST"
user="root" password="root"/>
<!-- 将用户的年龄增加2岁 -->
<sql:update dataSource="${test}" var="updatecount">
update users set user_age=user_age+?
<c:set value="2" var="count"/>
<sql:param value="${count}"/>
</sql:update>
<!-- 给id为1的用户设置日期 -->
<%
Date nowdate = new Date();
int userId = 1;
%>
<sql:update dataSource="${test}" var="updatecount2">
UPDATE users SET createtime = ? WHERE Id = ?
<sql:dateParam value="<%=nowdate%>" type="timestamp" />
<sql:param value="<%=userId%>" />
</sql:update>
<!-- 查询数据-->
<sql:query dataSource="${test}" var="result"
sql="SELECT * from users;" >
</sql:query>
<!--显示数据 -->
<table border="1" width="100%">
<tr>
<td colspan="7" align="center">
共查询${result.rowCount}条用户记录
</td>
</tr>
<tr>
<th>用户ID</th>
<th>用户姓名</th>
<th>用户性别</th>
<th>用户年龄</th>
<th>联系电话</th>
<th>出身地</th>
<th>创建日期</th>
</tr>
<c:forEach var="user" items="${result.rows}">
<tr>
<td><c:out value="${user.id}"/></td>
<td><c:out value="${user.user_name}"/></td>
<td><c:out value="${user.user_sex}"/></td>
<td><c:out value="${user.user_age}"/></td>
<td><c:out value="${user.user_phone}"/></td>
<td><c:out value="${user.user_address}"/></td>
<td><fmt:formatDate type="both" value="${user.createtime}" var="formatUsertime"/>
<c:out value="${formatUsertime}"></c:out></td>
</tr>
</c:forEach>
</table>
<%-- <sql:transaction dataSource="" isolation="">
</sql:transaction>--%>
</body>
</html>