什么是JSTL?
JSP Standard Tag Library,简称JSTL,JSP标准标签库,提供了一系列的标签供开发者在JSP页面中使用,编写各种动态功能。
JSTL常用标签?
JSTL一共包含四大标签库:
1.core:核心标签库
核心标签库主要分为如下:
- 表达式标签:out标签、set标签、remove标签、catch标签;
- 流程标签:if标签、choose标签、when标签、otherwise标签;
- 循环标签:forEach标签、forTokens标签;
- URL标签:import标签、url标签、redirect标签。
详细的作用描述如下:
2.fmt:格式化标签库
引用格式化标签库:
- <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
3.sql:数据库标签库
JSTL SQL 标签提供了许多操作数据库(MySQL、Oracle、SQL Server 等)的标签。
导入 SQL 标签库的语法如下:
- <%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql" %>
4.xml:xml标签库
不需要学习了,它过时了。
JSTL使用示例
- <%@page import="java.util.List"%>
- <%@page import="java.util.ArrayList"%>
- <%@ page language="java" contentType="text/html; charset=utf-8"%>
- <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
- <<jsp:useBean id="person" class="com.ftc.test.Person"></jsp:useBean>
- <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
- <html>
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
- <title>Insert title here</title>
- </head>
- <body>
- <h2>this is index.jsp!</h1>
- <hr>
- <%
- String username = "ftc";
- request.setAttribute("username", username);
- %>
- <c:out value="this is our JSTL firstDemo"></c:out>
- <hr>
- <input type="text" value="username" id="username" name="username" />
- <input type="submit" value="submit" id="submit" name="submit" />
- <c:out value="${username}">
- </c:out>
- <br>
- <c:out value="${1+2}"></c:out>
- <c:out value="${empty username}"></c:out>
- <br>
- <c:out value="${name }" default="error"></c:out>
- <br>
- <!-- 存值到scope (存储一个value的常量到var这么变量中,作用于为scope) -->
- <c:set value="today" var="day" scope="session"></c:set>
- <c:out value="${day }"></c:out>
- <br>
- <c:set var="age" scope="application">eleven</c:set>
- <c:out value="${age}"></c:out>
- <c:set target="${person}" property="name" value="zhangsan"></c:set>
- <c:out value="${person.name}"></c:out>
- <!-- remove 标签的用法 -->
- <c:set var="firstname" value="vlay"></c:set>
- <c:out value="${firstname }"></c:out>
- <c:set var="lastname" value="wang"></c:set>
- <c:remove var="lastname" />
- <c:out value="${lastname }"></c:out>
- <hr>
- <!-- catch标签的用法 -->
- <c:catch var="error">
- <c:set target="aa" property="bb">asas</c:set>
- </c:catch>
- <c:out value="${error}"></c:out>
- <!-- if标签的用法 -->
- <form action="index.jsp" method="post">
- <input type="text" name="score" value="${param.score}" /> <input
- type="submit" />
- </form>
- <c:if test="${param.score>=90}" var="result" scope="application">
- <c:out value="你的成绩是优秀"></c:out>
- <br>
- </c:if>
- <c:out value="${applicationScope.result}"></c:out>
- <hr>
- <!-- choose when otherwise标签的使用 -->
- <c:choose>
- <c:when test="${param.score>=90 && param.score<=100}">
- <c:out value="优秀"></c:out>
- </c:when>
- <c:when test="${param.score>=80 && param.score<90}">
- <c:out value="良"></c:out>
- </c:when>
- <c:when test="${param.score>=70 && param.score<80}">
- <c:out value="中等"></c:out>
- </c:when>
- <c:when test="${param.score>=60 && param.score<70}">
- <c:out value="及格"></c:out>
- </c:when>
- <c:when test="${param.score>=0 && param.score<60}">
- <c:out value="不及格"></c:out>
- </c:when>
- <c:otherwise>
- <c:out value="你的输入有误!"></c:out>
- </c:otherwise>
- </c:choose>
- <c:choose>
- <c:when test="${param.score==100}">
- <c:out value="你是满分"></c:out>
- </c:when>
- </c:choose>
- <br>
- <%
- List<String> fruits = new ArrayList<String>();
- fruits.add("苹果");
- fruits.add("橘子");
- fruits.add("香蕉");
- fruits.add("葡萄");
- fruits.add("梨子");
- request.setAttribute("fruits", fruits);
- %>
- <!-- foreach标签的使用 -->
- <c:forEach var="fruit" items="${fruits}">
- <c:out value="${fruit}"></c:out>
- <br>
- </c:forEach>
- <hr>
- <c:forEach var="fruit" items="${fruits}" begin="1" end="3">
- <c:out value="${fruit}"></c:out>
- <br>
- </c:forEach>
- <hr>
- <c:forEach var="fruit" items="${fruits}" step="2">
- <c:out value="${fruit}"></c:out>
- <br>
- </c:forEach>
- <hr>
- <c:forEach var="fruit" items="${fruits}" varStatus="fru">
- <c:out value="${fruit}的四个属性值"></c:out>
- <c:out value="index:${fru.index}"></c:out>
- <c:out value="count:${fru.count}"></c:out>
- <c:out value="first:${fru.first}"></c:out>
- <c:out value="last:${fru.last}"></c:out>
- <br>
- </c:forEach>
- <hr>
- </body>
- </html>