JSTL标签
用于代替,简化页面中的java代码
Java standard Tag Library => java标准标签库
apache组织提供一套已经开发好的标签库.
这套标签库在javaee 5.0版本后已经纳入标准.(使用不需要导包)
该套标签库一共分为4个库:
core:核心库(用的最多的)****
fmt:格式化库(2个)
xml:xml的操作相关(废弃)
sql: 与数据库操作相关(废弃)
- core库(重点:if choose foreach url)
使用方法:
1.在页面中引入标签库
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
2.使用
----------------------------------------------------------------
<%-- <c:if>(常用) 判断
test="${num1 > num2 }" 填写返回值为boolean的表达式
var="if" 键
scope="page" 域 将判断结果以var属性值为键放入该属性指定的域中.
--%>
<%
request.setAttribute("num1", 1000);
request.setAttribute("num2", 10000);
%>
<c:if test="${num1 > num2 }" var="if" scope="page" >
num1 厉害!
</c:if>
${pageScope.if}
<hr>
------------------------------------------------------------------------
<%-- 判断标签.支持if else形式
<c:choose>
<c:when>
test: 填写返回值为boolean的表达式
<c:otherwise>
--%>
<c:choose>
<c:when test="${num1 > num2 }">
num1 厉害!
</c:when>
<c:otherwise>
num2 厉害!
</c:otherwise>
</c:choose>
<hr>
------------------------------------------------------------------------ --
<%-- <c:forEach>(常用) 遍历标签
items="${requestScope.list}" 要便利的集合设置给该属性
var="abc" 每次遍历集合中元素 该属性值作为键放入page域
varStatus="st" 每次遍历的状态,会封装成一个对象 以该属性值为键 放入page域
数数的功能
begin="1" 从几开始数
end="100" 数到几
step="1" 每次数几个数
var="num" 将当前数的数以该属性值作为键放入page域
--%>
<%
List list = new ArrayList();
list.add("tom");
list.add("jerry");
list.add("jack");
list.add("rose");
request.setAttribute("list", list);
%>
<table border="1">
<tr>
<th>名称</th>
<th>是否是集合中第一个元素</th>
<th>是否是集合中最后一个元素</th>
<th>显示当前遍历的索引</th>
<th>显示当前遍历的计数</th>
</tr>
<c:forEach items="${requestScope.list}" var="abc" varStatus="st" >
<tr id="${st.index%2==0?"even":"odd"}" >
<td>${pageScope.abc}</td>
<td>${pageScope.st.first}</td>
<td>${pageScope.st.last}</td>
<td>${pageScope.st.index}</td>
<td>${pageScope.st.count}</td>
</tr>
</c:forEach>
</table>
<hr>
<!-- ----------------------------------------------------------------------- -->
<c:forEach begin="1" end="100" step="1" var="num" >
${num}
</c:forEach>
fmt库 格式化库
格式化日期
<!-- 格式化日期 fmt:formatDate --> <fmt:formatDate value="<%=new Date() %>" pattern="yyyy/MM/dd hh:mm:ss" var="date" scope="request" /> ${requestScope.date}
格式化数字
<!-- 格式化数字 fmt:formatNumber --> <fmt:formatNumber value="3.1415926" pattern="0000.00000000000" var="num1" scope="request" ></fmt:formatNumber> <fmt:formatNumber value="3.1415926" pattern="####.###########" var="num2" scope="request" ></fmt:formatNumber> ${requestScope.num1}<br> ${requestScope.num2}<br>
//————————————————————————————
路径总结
前提: 所有路径都应以"/"开头.
项目名:day10-jsp
资源名:AServlet
客户端路径 => 给浏览器用的路径 => 填写项目名称
<form action="/day10-jsp/AServlet" >
<img src="/day10-jsp/AServlet" >
<a href="/day10-jsp/AServlet" >
response.sendRedirect("/day10-jsp/AServlet")
服务器端路径 => 给服务器端使用的路径 => 填写项目下的路径
request.getRequestDispatcher("/AServlet")
errorPage="/AServlet"
<location>/AServlet</location>