组成
CORE 核心标记库 包括了循环 条件判断 表达式赋值 基本输入输出等功能.
FMT 格式化/国际化标记库 主要用来格式化数据以及提供显示信息的国际化的支持功能.
SQL 数据库标记库 包含了用来访问数据库的各种标记.通常仅仅只创建原形(PROTOTYPE)程序.
XML标记库 包含被用来访问XML元素的标记.
安装
只需将JSTL API类jstl.jar和JSTL实现类(standard.jar)复制到WEB应用的LIB中.JSTL还依赖于JAXP.1.2, XALAN2.5 ,
JDBC STANDARD EXTENSION2.0
使用
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/xml" prefix="x" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql" %>
隐式对象11个区别于JSP的9个.
JSP:page request response session application pageContext exception config out
JSTL:(JSP)pageContext (作用域)pageScope requestScope sessionScope applicationScope (请求参数)param paramValues (请求头)header headerValues (Cookie)cookie(初始化参数)initParam
存取器:点运算符. 和方括号运算符[]
<c:forEach>标记的语法定义如下:
<c:forEach var="name" items="expression" varStatus="name" begin="expression" end="expression" step="expression">
</c:forEach>
var :迭代参数的名称.items:要进行迭代的集合.varStatus:迭代变量的名称,用来表示迭代的状态.
begin:如果指定了items,那么迭代就从items[begin]开始,items[end]结束.如果没有指定items,那么就从begin开始.类型为整数.相当于for循环的i
step:迭代的步长
items属性支持所有标准集合类型.1.Collection 2.Map 3.Iterator 4.Enumeration 5.实例数组 6.基本类型数组 7.逗号界定的String 8.javax.servlet.jsp.jstl.sql.Result
varStatus 包含了一系列特性.描述了迭代的当前状态.
例如: varStatus="loop"
loop.current:当前这次迭代的(集合中的)项
loop.index:从0开始的迭代索引
loop.count:从1开始的迭代索引
loop.first:是否为第一次迭代,boolean
loop.last:是否为最后一次迭代,boolean
loop.begin:begin属性的值
loop.end:end属性的值
loop.step:step属性的值
<c:set>标记语法定义如下:
<c:set var="name" scope="scope" value="expression" />
var:所定义或者使用的变量的名称
scope:变量的作用域,默认为page
value:值
作用:在JSP面中创建限制了作用域的变量 ,如果已经存在了,那么会把指定的值赋给该变量
<c:if>标记语法定义如下:
<c:if test="expression" var="name" scope="scope"></c:if>
test:指定条件判断的表达式
var:测定结果的变量名,用来保存表达式的结果.避免同一页面的多次相同判断
scope:作用域
<c:out>标记语法定义如下:
<c:out value="expression" default="expression" escapeXml="boolean" />
value:表达式
default:默认.当值为NULL或者String为空的时候打印
escapeXml:是否转义.如果设置为true,会自动进行编码处理
实例:
vo: String item , int percent.
Action: request.setAttribute("list",list);
JSP:
<table>
<c:forEach var="col" items="${list}">
<tr>
<td>${col.item}(${col.percent})</td>
<td width="${100-col.percent}%"></td>
</tr>
</c:forEach>