JSTL(Java server pages standarded tag library,即JSP标准标签库)是由JCP(Java community Proces)所制定的标准规范,它主要提供给Java Web开发人员一个标准通用的标签库,并由Apache的Jakarta小组来维护。开发人员可以利用这些标签取代JSP页面上的Java代码,从而提高程序的可读性,降低程序的维护难度。
JSTL的英文全称是JavaServer Pages Standard Tag Library,中文全称是JSP标准标识库。JSTL技术标准是由JCP(lava Community Process)组织的JSR052专家组发布,Apache组织将其列入Jakarta项目,Sun公司将JSTL的程序包加入互联网服务开发工具包内(Web Services Developer Pack(WSDP)),作为JSP技术应用的一个标准。
JSTL标签是基于JSP页面的,这些标签可以插入在JSP代码中,本质上JSTL也是提前定义好的一组标签,这些标签封装了不同的功能,在页面上调用标签时,就等于调用了封装起来的功能。JSTL的目标是简化JSP页面的设计。对于页面设计人员来说,使用脚本语言操作动态数据是比较困难的,而采用标签和表达式语言则相对容易,JSTL的使用为页面设计人员和程序开发人员的分工协作提供了便利。
JSTL标识库的作用是减少JSP文件的Java代码,使Java代码与HTML代码分离,所以JSTL标识库符合MVC设计理念。MVC设计理念的优势是将动作控制、数据处理、结果显示三者分离。
在JSP诞生之初,JSP提供了在HTML代码中嵌入Java代码的特性,这使得开发者可以利用Java语言的优势来完成许多复杂的业务逻辑。但是,随后开发者发现在HTML代码中嵌入过多的Java代码,程序员对于动辄上千行的JSP代码基本丧失了维护能力,非常不利于JSP的维护和扩展。基于上述的这个问题,开发者尝试着使用一种新的技术来解决上面这些问题。因此,从JSP1.1规范后,JSP增加了自定义标签库的支持,提供了Java脚本的复用性,提高了开发者的开发效率。
JSTL是SUN公司发布的一个针对JSP开发的新组件。JSTL允许用户使用标签(Tags)来进行JSP页面开发,而不是使用传统的JSP脚本代码方式开发。JSTL几乎能够做到传统JSP脚本代码能做的任何事情。
JSTL包含了和以下操作相关的标签:
1、核心标签:核心标签库是整个JSTL中最常用的部分,主要由以下几部分组成:基本输入输出、流程控制、迭代操作和URL操作。负责Web应用的常见工作,如:循环、表达式赋值、基本输入输出等。
2、I18N格式标签库:用来格式化显示数据的工作如:对不同区域的日期格式化等。
3、XML标签库:用来访问XML文件的工作,支持JSP对XML文档的处理。
4、数据库标签库:SQL标签库包括了大部分访问数据库的逻辑操作,包括查询、更新、事务处理、设置数据源等。可以做访问数据库的工作。
5、函数标签库:用来读取已经定义的某个函数。
结合EL表达式来使用,代替jsp页面中的scriptlet。
• core:核心类库 if foreach …
• fmt:格式化|国际化
• xml:已过时
• sql:已过时
• 函数库:平时很少使用
1、导入jar包 (jstl.jar和standard.jar)
2、在页面上导入标签库
<%@taglib prefix="" uri=""%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
3、引用方式:c标签所需功能
1、c:if
使用方式:满足的时候输出的内容
例如:
<c:if test="${5>3}">
5大于3
</c:if>
2、c:forEach
使用方式
<c:forEach begin="从那里开始" end="到那里结束" step="步
长" var="给变量起个名字" varStatus="循环状态变量">
${i }--${vs.count }<br>
</c:forEach>
例如:
<c:forEach begin="1" end="3" items="${strList}" step="1"
var="str">
${str}
<br/>
</c:forEach>
3、c:set 和 c:choose的使用(了解)
<c:set var="count" value="4"/>
<!-- 相当于 pageContext.setAttribute("count",3) -->
<c:choose>
<c:when test="${ count ==1 }">
计数1
</c:when>
<c:when test="${ count ==2}">
计数2
</c:when>
<c:when test="${ count ==3 }">
计数3
</c:when>
<c:otherwise>
不在范围内
</c:otherwise>
</c:choose>
重构需求
① 使用el结合jstl的方式,对学生信息列表进行重构
② 使用el对修改页的取值进行重构
③ 从学生列表页跳转到学生添加页,使用按钮绑定事件的方式 来实现
④ 学生添加操作和学生修改操作,使用jquery的方式来提交表 单
⑤ 在学生信息列表页扩充修改按钮,删除按钮,配合列表第一列 的复选框来实现跳转到修改页的操作和执行删除操作
⑥ 使用修改按钮跳转到修改页
⑦ 使用删除按钮执行删除操作
⑧ 使用删除按钮实现可批量删除操作
⑨ 批量删除时需要注意的问题
⑩ 在列表页上加入全选操作,列表实现隔行变色操作