1.什么是JSTL
JSP标准标签库(JSTL)是一个JSP标签集合,它封装了JSP应用的通用核心功能。
JSTL支持通用的、结构化的任务,比如迭代,条件判断,XML文档操作,国际化标签,SQL标签。 除了这些,它还提供了一个框架来使用集成JSTL的自定义标签。
根据JSTL标签所提供的功能,可以将其分为5个类别。
- 核心标签(core): 核心标签库,我们学习的重点;
- 格式化标签 :只需要学习两个标签即可;
- SQL 标签( sql):数据库标签库,不需要学习了,它过时了;
- XML 标签: 不需要学习了,它过时了。
- JSTL 函数: 主要定义对字符串操作的函数库,在EL表达式中运行。
2.JSTL包 下载
我推荐大家去apache下载
http://tomcat.apache.org/taglibs/
点击网址进入这个界面
选中[Standard],进入
下一步把这四个taglibs下载下来
下一步
3.使用taglib指令导入标签库:
除了JSP动作标签外,使用其他第三方的标签库都需要:
- 导包;
- 在使用标签的JSP页面中使用taglib指令导入标签库;
1 <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
4、core标签库常用标签:
<c:out>:用于显示的标签
<c:set>: 用于赋值的标签
<c:remove>:用于删除的标签
<c:catch>:用于捕获异常的标签
<c:forEach>:用于循环遍历对象的标签
遍历List:
1 <% 2 List<String> names = new ArrayList<String>(); 3 names.add("zhangSan"); 4 names.add("liSi"); 5 names.add("wangWu"); 6 names.add("zhaoLiu"); 7 pageContext.setAttribute("ns", names); 8 %> 9 <c:forEach var="item" items="${ns }"> 10 <c:out value="name: ${item }"/><br/> 11 </c:forEach>
5.代码比较
5.1没运用JSTL之前的代码
1.得先导入包
2.<%%>获取request的对象
分析:此界面不够整洁,不利于前端工作者对界面的美化,我们的目的是能使前端工作者专注于界面的美化,不受后端代码干扰
5.2运用JSTL之后的代码
总结
1.不用导入包
${table_1}直接取代
<%@ page import="java.util.List" %>
<%@ page import="entity.House" %>
<%List<House> houseList = (List)request.getAttribute("table_1");%>。
其中本例中的${table_1}
其实它完整写法: ${requestScope.table_1}
原理EL表达式,可以直接取request范围内变量
EL表达式,定义了多个隐式对象.
5.3关键代码分析
6.JSTL代码对view层的格式化
在我们通过.jsp文件把数据显示出来的时候,数据应该被处理过了。即我们打开页面看到的数据与数据存储在数据库的形态是不同的。
我们看到的处理过的数据
保存在数据库的数据
两个数据是一样的,但存在很大差别。
6.1格式化数据(Format)
6.1.1 引入该标签库的方法:
<%@ taglib prefix="fmt" uri="http://Java.sun.com/jsp/jstl/fmt" %>
6.1.2 标签种类
1)数字日期格式化。formatNumber标签、formatData标签、parseNumber标签、parseDate标签、timeZone标签、setTimeZone标签。
2)读取消息资源。bundle标签、message标签、setBundle标签。
3)国际化。setlocale标签、requestEncoding标签。
6.1.3 代码实现
1 <c:forEach items="${fixedAssetsList}" var="fa"> 2 <tr bgcolor="#FFFFFF"> 3 <td>${fa.id}</td> 4 <td>${fa.name}</td> 5 <td> 6 <fmt:formatNumber type="currency">${fa.money}</fmt:formatNumber> 7 </td> 8 <td> 9 <fmt:formatDate value="${fa.startUseTime}" pattern="yyyy年MM月dd日hh:mm:ss"></fmt:formatDate> 10 </td> 11 </tr> 12 </c:forEach>
view层应对各种数学按照一定格式包装,其中fmt就提供了很大的便利,
最常见的就是对数字(formatNumber)和日期(formatData)的包装
谢谢你们这么帅,还能抽空来看我的随笔!本人初学Java,欢迎指点和提问。