关于对本次学习的JSTL进行总结
在 mvnrepository 中,直接搜索jstl,,找到下载量最高的,下载1.2版本。
下载完导入到项目里面就好了
jstl是apache对EL表达式的扩展 使用需导jar包
在使用标签的JSP页面中使用taglib指令导入标签库
下面是导入JSTL的core标签库: <%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
<c:out value="${code }"/>
value:可以是字符串常量,也可以是EL表达式
default:当要输出的内容为null时,会输出default指定的值
escapeXml:默认值为true,表示转义!
<c:set var="a" value="hello" scope="session"/>
在session中添加name为a,value为hello的数据。
value:变量值,可以是EL表达式
scope:域,默认为pageContext,可选值:pageContext、request、session、application
<c:remove var="a" scope="page"/>
删除pageContext中name为a的数据!
<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 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 来创建循环状态变量
current:当前元素
<c:forEach items="${list }" var="ele" varStatus="vs">
${vs.index} ${vs.count } ${vs.first } ${vs.last } ${vs.current }<br/>
</c:forEach> <%@ 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位,不补位!