一、JSTL概述
JSTL是apache对EL表达式的扩展(也就是说JSTL依赖EL),JSTL是标签语言!JSTL标签使用起来非常方便,它与JSP动作标签一样,只不过它不是JSP内置的标签,需要我们自己导包,以及指定标签库而已!
JSTL一共包含四大标签库
- core:核心标签库,我们学习的重点;
- fmt:格式化标签库,只需要学习两个标签即可;
- sql:数据库标签库,不需要学习了,它过时了;
- xml:xml标签库,不需要学习了,它过时了。
java和tomcat是没有这个包的,所以得手动导入 下载 把两个架包放到lib下,放错了读不出来 然后右键add path就行了
二、语法知识
很简单,看看例子就行了
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<%@page import="java.util.*" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Insert title here</title>
</head>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="f"%>
<%
request.setAttribute("aaa", 111);
%>
<body>
<h3>1.输出</h3>
<c:out value="123"/>
<c:out value="${aaa}"/>
<c:out value="${aaaa}" default="xxx"/>
<%
request.setAttribute("aa2", "<h5>123</h5>");
%>
<c:out value="${aa2}" escapeXml="false"/>
<c:out value="${aa2}" escapeXml="true"/>
<c:out value="${aa2}" escapeXml="false"/>
<!-- escapeXml是false时就是html语句 -->
<h3>2.输入(设置属性)</h3>
<c:set var="a" value="hello"/>
<c:set var="a" value="hello" scope="session"/>
<!--设置变量 -->
<h3>3.删除</h3>
<c:remove var="a"/>
<!-- 移除所有的变量a -->
<h3>4.查找路径</h3>
<c:url value="/"/>
<c:url value="/" var="a" scope="request"/><br>
<c:out value="${a}"/><br>
<c:url value="/AServlet">
<c:param name="username" value="abc"/>
<c:param name="password" value="123"/></c:url><br>
<h3>5.if</h3>
<c:set var="a" value="hello"/>
<!-- 默认给pageContext添加 -->
<c:if test="${not empty a}">
<c:out value="${a}"/>
</c:if><br>
<h3>6.choose</h3>
<%request.setAttribute("score", 70); %>
<c:set var="score" value="${score}"/>
<c:choose>
<c:when test="${score>50}">Niubi</c:when>
<c:when test="${score<50}">Wandan</c:when>
<c:otherwise>null</c:otherwise>
</c:choose><br>
<h3>7.forEach</h3>
<c:set var="sum" value="0"/>
<c:forEach var="i" begin="1" end="10" step="1">
<c:set var="sum" value="${sum+i}"/>
<c:out value="${i} "/>
</c:forEach>
<c:out value="sum=${sum}"/>
<c:forEach var="i" begin="1" end="10" step="1">
<c:set var="sum" value="${sum+i}"/>
<c:out value="${i} "/>
</c:forEach><br>
<%
int a[] = {'a','b','c'};
pageContext.setAttribute("a", a);
%>
<c:forEach var="item" items="${a}" varStatus="vs">
<c:out value="${vs.first} "/>
<c:out value="${vs.count} "/>
<c:out value="${vs.index} "/>
<c:out value="${vs.current} "/><br>
</c:forEach>
<!-- 必须要items -->
<h3>8.fmt格式化日期或数字</h3>
<%
Date d = new Date();
pageContext.setAttribute("d", d);
%>
<%-- <c:set var="d" value="${d}"/> 不行,不能访问d--%>
<c:out value="${d}" default="null"/><br>
<f:formatDate value="${d}" pattern="yyyy-MM-dd HH-mm-ss"/><br>
<f:formatNumber value="1.4" pattern="0.00"/><br>
<f:formatNumber value="1.4" pattern="##.##"/>
<!-- 0.00不足位会自动补0,
</body>
</html>
学习的博客
|