1.JSTL库
官方下载地址:http://archive.apache.org/dist/jakarta/taglibs/standard/binaries/
jakarta-taglibs-standard-1.1.2.tar.gz
JSTL是标准标签库,它是通过多个标签库来暴露其行为的,JSTL1.2中可以分为5类区域:
core:核心标签库,我们学习的重点;URL:http://java.sun.com/jsp/jstl/core 前缀 :c
fmt:格式化标签库,只需要学习两个标签即可;URL:http://java.sun.com/jsp/jstl/fmt 前缀 :fmt
fn: 函数标签库,集合长度,字符串操作 URL:http://java.sun.com/jsp/jstl/fn 前缀 :fn
sql:数据库标签库, URL:http://java.sun.com/jsp/jstl/sql 前缀 :sql
xml: XML标签库, URL:http://java.sun.com/jsp/jstl/xml 前缀 :x
在JSP页面中使用JSTL库,必须通过以下格式的taglib命令:
<%@ taglib uri="uri" prefix="prefix" %> prefix为前缀,可以任意, 但建议使用预定的前缀,以便其他人能理解
PS:以下讨论的属性中,属性名称加* 表示该属性是必需的,加号(+)表示该是的rtexprvalue为True的时候,该属性可以赋静态字符串或者动态值(Java表达式,EL表达式) ,但是为false时,表示该属性只能赋静态字符串的值
2.一般行为(Core 中用来操作有界变量的3个一般行为:out,set ,remove)
1) out标签,out实在运算表达式时,是将结果输出到当前的JspWriter,out的语法有两种,即有body content 和没有 body content,
<c:out value="value" [escapeXml= "{true|false} " ] [default =" defaultValue" ] /> //[]表示为可选属性
<c:out value="value" [escapeXml= "{true|false} " ] > default value </c:out>
out标签的属性:
属性 | 类型 | 描述 |
value*+ | 对象 | 要计算的表达式 |
escapeXml+ | 布尔 | 表示结果中的字符< > & ' " 等转化为相应的实体码 |
default+ | 对象 | 默认值 |
default可以赋一个默认值,当value中的EL表达式返回null时,就会显示默认值.default可以赋动态值
2)set标签
功能: a.创建一个字符串和一个引用该字符串的有界变量
b.创建一个引用现存有界对象的有界变量
c.设置有界对象的属性
用set设置有界变量,在该标签出现后的整个JSP页面都可以使用该变量 ,有四种形式:
a.用于创建一个有界变量,在value中定义一个现存有界对象或要创建的字符串
<c:set value="value" var="varName" [scope="{page|request|session|application}"] /> //scope 指定有界变量的范围
<c:set var ="job" value="${requestScope.position}" scope="page" />
b.和a相似,只是要创建的字符串或要引用的有界对象作为body content赋值
<c:set var="varName" [scope="{page|request|session|application}"] >body content </c:set>//body content中允许有JSP代码
c.设置有界对象的属性值,target属性定义有界对象,property 定义对象的属性 ,通过value赋值
<c:set target="target" property="propertyName" value="value" />
d.和c类似,通过bodycontent赋值
<c:set target="target" property="propertyName">body content</c:set>
<c:set target="${address}" property="city" />beijing</c:set>//给有界对象address的city属性赋值beijing
set属性:
属性 | 类型 | 描述 |
value+ | 对象 | 要创建的字符串,或者要引用的有界对象,或者新的属性值 |
var | 字符串 | 要创建的有界对象 |
scope | 字符串 | 新创建的有界变量的范围 |
target+ | 对象 | 其属性要被赋新值的有界对象,一定是一个JavaBeans实例或者java.util.Map对象 |
property+ | 字符串 | 要被赋新值的属性名称 |
3)remove标签
用于删除有界变量
<c:remove var = "varName" [scope="{page|request|session|application}"] />
PS:有界变量引用的对象不能删除.
remove属性:
属性 | 类型 | 描述 |
var | 字符串 | 要删除的有界变量的名称 |
scope | 字符串 | 要删除的有界变量的范围 |