共计 2098 个字符,预计需要花费 6 分钟才能阅读完成。
关于对本次学习的 JSTL 进行总结
下载
在 mvnrepository 中,直接搜索 jstl,,找到下载量最高的,下载 1.2 版本。
下载完导入到项目里面就好了
jstl 概述
jstl 是 apache 对 EL 表达式的扩展
使用需导 jar 包
JSTL 标签库
core:核心标签库
fmt:格式化标签库
sql:数据库标签库(过时)
xml:xml 标签库(过时)
使用 taglib 指令导入标签库
在使用标签的 JSP 页面中使用 taglib 指令导入标签库
下面是导入 JSTL 的 core 标签库:
<%@ taglib prefix=”c” uri=”http://java.sun.com/jstl/core” %>
prefix=”c”,可以随便给值,但大家都用的 c
uri=”http://java.sun.com/jstl/core”,标签库的 uri
<c:out>:输出
<c:out value=”${code}”/>
value:可以是字符串常量,也可以是 EL 表达式 default:当要输出的内容为 null 时,会输出 default 指定的值 escapeXml:默认值为 true,表示转义!
<c:set>:设置 (创建域的属性)
<c:set var=”a” value=”hello” scope=”session”/>
在 session 中添加 name 为 a,value 为 hello 的数据。value:变量值,可以是 EL 表达式 scope:域,默认为 pageContext,可选值:pageContext、request、session、application
<c:remove>:删除域变量
<c:remove var=”a” scope=”page”/>
删除 pageContext 中 name 为 a 的数据!
<c:url>
<c:url value=”/AServlet”/>
输出:/ 项目名 /AServlet
子标签 <c:param>,用来给 url 后面添加参数
<c:url value=”/AServlet”>
<c:param name=”username” value=”abc”/>
</c:url>
输出:/ 项目名 /AServlet?username=abc&password=123
<c:if> 对应 java 中的 if 语句
<c:if test=” 布尔类型 ”>…</c:if>,当 test 为值时,执行标签体内容!
<c:choose> 它对应 java 中的 if/else if/ … /else
<c:choose>
<c:when test=””>…</c:when>
<c:when test=””>…</c:when>
<c:when test=””>…</c:when>
…
<c:otherwise> …</c:otherwise>
</c:choose>
<c:forEach>
<c:forEach var=”i” begin=”1″ end=”10″>
<c:out value=”${i}” />
</c:forEach>
var:循环变量 begin:设置循环变量从几开始。end:设置循环变量到几结束。step:设置步长!等同与 java 中的 i ++,或 i +=2。step 默认为 1
用来输出数组、集合
<c:forEach items=”${strs}” var=”str”>
${str}<br/>
</c:forEach>
items:指定要循环谁,它可以是一个数组或一个集合
输出循环状态使用 varStatus 来创建循环状态变量
count:循环元素的个数
index:循环元素的下标
first:是否为第一个元素
last:是否为最后一个元素
current:当前元素
<c:forEach items=”${list}” var=”ele” varStatus=”vs”>
${vs.index} ${vs.count} ${vs.first} ${vs.last} ${vs.current}<br/>
</c:forEach>
fmt:格式化:日期、数字(格式化库)
导库
<%@ taglib prefix=”fmt” uri=”http://java.sun.com/jsp/jstl/fmt” %>
格式化时间
<%
Date date = new Date();
request.setAttribute(“date”, date);
%>
<fmt:formatDate value=”${requestScope.date}” pattern=”yyyy-MM-dd HH:mm:ss”/>
把当前时间设置格式为 yyyy-MM-dd HH:mm:ss,从 result 域中查找 date。
格式化数字
<%
request.setAttribute(“num1″, 3.1415926);
%>
<fmt:formatNumber value=”${requestScope.num1}” pattern=”0.000″/><br/>
<fmt:formatNumber value=”${requestScope.num1}” pattern=”#.###”/>
0.000:保留小数点后 3 位,它会四舍五入!如果不足 3 位,以 0 补位!#.###:保留小数点后 3 位,它会四舍五入!如果不足 3 位,不补位!