JSTL 各项标签及其属性
【JSTL core】
catch 标签
作用:捕获任何页面执行异常,类似try{}cath{}
属性var:可以设置一个获取异常信息的变量,非必须,不可用EL表达式
choose 标签
作用:类似于switch,分支选择,与when 和 otherwise 标签配合实现
if 标签
作用:类似if,条件判断语句
属性test:判断字句,必选,可用EL表达式,必须为boolean型
import 标签
作用:类似include,可以包含其他页面(不确定 )
属性url:页面地址,必选,可用EL表达式。
属性var:导入内容可存放入这个变量(不确定 ) ,非必选,不可用EL表达式。
属性scope:var的作用范围(不确定 ) ,非必选,不可用EL表达式。
属性varReader:可以用于读取导入内容的Reader(不确定 ) ,非必选,不可用EL表达式。
属性context:(未知其作用 ) ,非必选,可用EL表达式。
属性charEncoding :读入内容使用的编码格式 ,非必选,可用EL表达式。
forEach 标签
作用:迭代器,支持多种数据集合
属性items:需要迭代的数据集合,非必选,可用EL表达式。
属性begin:迭代起点,非必选,可用EL表达式,必须为int类型
属性end:迭代终点,非必选,可用EL表达式,必须为int类型
属性step:迭代步长,非必选,可用EL表达式,必须为int类型
属性var:当前迭代获得的对象变量,非必选,不可用EL表达式
属性varStatus:迭代状态,非必选,不可用EL表达式
forTokens 标签
作用:依据分割标记Token迭代一个字符串(不确定 )
属性items:需要迭代的字符串,必选,可用EL表达式。必须是String类型
属性delims :分割标记集合,(没搞明白多个分割标记怎么在一个字符串里集合,难道用正则),必选,可用EL表达式。必须是String类型。
属性begin:迭代起点,非必选,可用EL表达式,必须为int类型
属性end:迭代终点,非必选,可用EL表达式,必须为int类型
属性step:迭代步长,非必选,可用EL表达式,必须为int类型
属性var:当前迭代获得的对象变量,非必选,不可用EL表达式
属性var:当前迭代获得的对象变量,非必选,不可用EL表达式
属性varStatus:迭代状态,非必选,不可用EL表达式
out 标签
作用:与<%=...%>基本相同
属性value:要输出的内容 ,必选,可用EL表达式
属性default:如果value为null,则输出该默认值,非必选,可用EL表达式
属性escapeXml :是否进行html encode迭代状态,非必选,可用EL表达式,默认为true
otherwise 标签
作用:配合choose标签,与when相对应,所有的when都不匹配则进入,相当于switch的default分支
param 标签
作用:为import增加一个参数(不确定 ),最终形成querystring变量
属性name:参数名, 必选,可用EL表达式
属性value:参数值, 非必选,可用EL表达式
redirect 标签
作用:重定向,等同于response.sendRedirect()
属性url:重定向地址, 非必选,可用EL表达式
属性context:(未知其作用 ) ,非必选,可用EL表达式。
remove 标签
作用:未知
属性var:(未知其作用 ) ,必选,不可用EL表达式。
属性scope:变量作用域,非必选,不可用EL表达式。
set 标签
作用:设置一个变量
属性var:变量名,非必选,不可用EL表达式。
属性value:变量值,非必选,可用EL表达式。
属性target:可以对一个bean对象进行字段赋值,非必选,可用EL表达式。
属性property:bean对象的某个属性,非必选,可用EL表达式。
属性scope:变量作用域,非必选,不可用EL表达式。
url 标签
作用:构造一个链接地址,可附带querystring
属性var :构造url用的变量,非必选,不可用EL表达式。
属性scope:变量作用域,非必选,不可用EL表达式。
属性value:构造的url值,非必选,可用EL表达式。
属性context:变量作用域,非必选,可用EL表达式。
when 标签
作用:配合choose标签,匹配分支,相当于switch的case分支
属性test:判断字句,必选,可用EL表达式,必须为boolean型
遗留问题:core库有c.tld、c-1_0.tld、c-1_0-rt.tld,我简单看了一下,c.tld是JSTL 1.1,其他两个是JSTL 1.0,但是在TSTL的定义库文件夹里,他们都在,不知道是协同工作的,还是1.1会覆盖1.0的,这个有待验证
【JSTL fmt】
requestEncoding 标签
作用:定义request字符集,相当于request.setCharacterEncoding();
属性 value :字符集名称,非必选,可用EL表达式
setLocale 标签
作用:估计是用来设置区域的,为了国际化多语言支持(不确定 )
属性 value: 必选,可用EL表达式
属性 variant: 非必选,不可用EL表达式
属性 scope: 非 必选,不可用EL表达式
timeZone 标签
作用:设定时区,直接影响所有跟时间日期操作有关的方法。
属性value:时区值,格式依据java定义,如 GMT-8,必选,可用EL表达式
setTimeZone 标签
作用:貌似把timezone存入配置的功能 (不确定 )
属性 value: 必选,可用EL表达式
属性var : 非必选,不可用EL表达式
属性 scope: 非 必选,不可用EL表达式
bundle 标签
作用:貌似调用资源簇的标签,具体使用方法不详 (不确定 )
属性 basename : 必选,可用EL表达式
属性 prefix : 非必选,可用EL表达式
setBundle 标签
作用:貌似把 bundle 存入配置的功能 (不确定 )
属性 basename: 必选,可用EL表达式
属性var : 非必选,不可用EL表达式
属性 scope: 非 必选,不可用EL表达式
message 标签
作用:一个本地化支持的映射表 (不确定 )
属性key:映射键值,非必选,可用EL表达式
属性 bundle :使用方法未知 ,非必选,可用EL表达式
属性var : 非必选,不可用EL表达式
属性 scope: 非 必选,不可用EL表达式
param 标签
作用:未知
属性 value : 非 必选,不可用EL表达式
formatNumber 标签
作用:格式化数字
属性 value :需要格式化的数字,非必选,可用EL表达式
属性 type :设定数字被格式化为那种类型( number, currency, percentage), 非必选,可用EL表达式
属性 pattern:格式化样式, 非必选,可用EL表达式
属性 currencyCode: ISO 4217 格式货币代码,仅在type= currency有效
属性 currencySymbol :货币符号, 仅在type= currency有效
属性 groupingUsed:格式化结果分组,可能是以千位加逗号那种 (不确定 )
属性 maxIntegerDigits:最大整数位数, 非必选,可用EL表达式
属性 minIntegerDigits:最小整数位 数, 非必选,可用EL表达式
属性 maxFractionDigits:最大小数位 数, 非必选,可用EL表达式
属性 minFractionDigits:最小小数位 数, 非必选,可用EL表达式
属性var :存放结果的变量, 非必选,不可用EL表达式
属性 scope: 非 必选,不可用EL表达式
parseNumber 标签
作用:从字符串解析数字,可解析 number, currency, percentage
属性 value :用于解析的值,非必选,可用EL表达式
属性 type:设定解析目标类型 ( number, currency, percentage) 非必选,可用EL表达式
属性 pattern:格式化样式, 非必选,可用EL表达式
属性 parseLocale:默认地区化格式, 非必选,可用EL表达式
属性 integerOnly:是否近解析证书部分, 非必选,可用EL表达式
属性 var:存放解析结果的变量 , 非必选,不可用EL表达式
属性 scope: 非 必选,不可用EL表达式
formatDate 标签
作用:格式化日期、时间
属性 value :需要格式化日期时间值, 必选,可用EL表达式
属性 type:设定解析目标类型 ( date,time,both), 非必选,可用EL表达式
属性dateStyle:预定义日期样式,遵循 java.text.DateFormat语法,仅type为date或both有效,非必选,可用EL表达式
属性timeStyle:预定义时间样式,遵循 java.text.DateFormat语法, 仅type为time或both有效,非必选,可用EL表达式
属性pattern:自定义样式, 非必选,可用EL表达式
属性timeZone:时区定义, 非必选,可用EL表达式
属性var:存放结果的变量 , 非必选,不可用EL表达式
属性 scope: 非 必选,不可用EL表达式
parseDate 标签
作用:从字符串解析日期时间
属性 value :用于解析的值,非必选,可用EL表达式
属性 type:设定解析目标类型 ( date,time,both), 非必选,可用EL表达式
属性dateStyle:预定义日期样式,遵循 java.text.DateFormat语法,仅type为date或both有效,非必选,可用EL表达式
属性timeStyle:预定义时间样式,遵循 java.text.DateFormat语法, 仅type为time或both有效,非必选,可用EL表达式
属性pattern:自定义样式, 非必选,可用EL表达式
属性timeZone:时区定义, 非必选,可用EL表达式
属性 parseLocale:默认地区化格式, 非必选,可用EL表达式
属性var:存放结果的变量 , 非必选,不可用EL表达式
属性 scope: 非 必选,不可用EL表达式
【JSTL sql】
transaction 标签
作用:开启一个数据库执行事务
属性dataSource:设置数据源,可以是JNDI或JDBC, 非必选,可用EL表达式
属性isolation:事务隔离级别,如果不设定,则使用数据源自身设置 , 非必选,可用EL表达式
query 标签
作用:执行一个查询语句,可以使用sql属性值,或标签体内容作为sql语句。
属性var: 存放Result结果集的变量, 必选,不可用EL表达式
属性 scope: 非必选,不可用EL表达式
属性sql:sql语句 , 非必选,可用EL表达式
属性 dataSource : 设置数据源,可以是JNDI或JDBC, 非必选,可用EL表达式
属性 startRow:启示结果集索引,如果不设置则从0开始(是否是从BOF呢? ) , 非必选,可用EL表达式
属性 maxRows:最大结果集数量,-1或未设置则返回所有, 非 必选,不可用EL表达式
update 标签
作用:执行一个更新语句,可以使用sql属性值,或标签体内容作为sql语句。
属性var: 存放更新数量值的变量,必须为int类型,非必选,不可用EL表达式
属性 scope: 非必选,不可用EL表达式
属性sql:sql语句 , 非必选,可用EL表达式
属性 dataSource : 设置数据源,可以是JNDI或JDBC, 非必选,可用EL表达式
param 标签
作用:为SQL语句添加参数值,泛类型
属性 value:参数值, 非必选,可用EL表达式
dateParam 标签
作用:为SQL语句添加 日期时间类型参数值 (DATE, TIME, or TIMESTAMP)
属性 value:参数值 ,必选,可用EL表达式
属性 type:明确参数类型( date,time,timestamp), 非必选,可用EL表达式
setDataSource 标签
作用:建立一个数据源
属性var:存放建立的数据源的变量,非 必选,不可用EL表达式
属性 scope: 非必选,不可用EL表达式
属性 dataSource : 设置数据源,可以是JNDI或JDBC, 非必选,可用EL表达式
属性 driver : 设置JDBC驱动, 非必选,可用EL表达式
属性 url : 设置数据库访问串, 非必选,可用EL表达式
属性user : 设置数据库访问用户名, 非必选,可用EL表达式
属性 password : 设置 数据库访问密码 , 非必选,可用EL表达式
【JSTL XML】
尚未学习
【JSTL functions】
contains 函数
作用:测定一个字符串内是否包含另一个字符串,大小写敏感
定义: boolean contains(java.lang.String, java.lang.String)
示例: <c:if test="${fn:contains(name, searchString)}">
containsIgnoreCase 函数
作用:测定一个字符串内是否包含另一个字符串,大小写不敏感
定义: boolean containsIgnoreCase (java.lang.String, java.lang.String)
示例: <c:if test="${fn: containsIgnoreCase (name, searchString)}">
endsWith 函数
作用:测定一个字符串是否由另一个字符串作为结尾,大小写敏感
定义: boolean endsWith(java.lang.String, java.lang.String)
示例: <c:if test="${fn:endsWith(filename, ".txt")}">
escapeXml 函数
作用:多内容进行xml encode(html encode?)
定义: java.lang.String escapeXml(java.lang.String)
示例: ${fn:escapeXml(param:info)}
indexOf 函数
作用:查找一个字符串在另一个字符串中的位置
定义: int indexOf(java.lang.String, java.lang.String)
示例: ${fn:indexOf(name, "-")}
join 函数
作用:将一个字符串加入到一个字符串数组的每个元素之间,并组合成新的字符串。
定义: java.lang.String join(java.lang.String[], java.lang.String)
示例: ${fn:join(array, ";")}
length 函数
作用:取得一个集合中的元素个数,或者一个字符串的长度。
定义: int length(java.lang.Object)
示例: You have ${fn:length(shoppingCart.products)} in your shopping cart.
replace 函数
作用:替换操作,多个命中时会全部进行替换,相当于replaceAll
定义: java.lang.String replace(java.lang.String, java.lang.String, java.lang.String)
示例: ${fn:replace(text, "-", "•")}
split 函数
作用:以特定标志将字符串分割为字符串数组
定义: java.lang.String[] split(java.lang.String, java.lang.String)
示例: ${fn:split(customerNames, ";")}
startsWith 函数
作用:测定一个字符串是否由另一个字符串开头
定义: boolean startsWith(java.lang.String, java.lang.String)
示例: <c:if test="${fn:startsWith(product.id, "100-")}">
substring 函数
作用:取一个字符串的一部分
定义: java.lang.String substring(java.lang.String, int, int)
示例: P.O. Box: ${fn:substring(zip, 6, -1)}
substringAfter 函数
作用: 取 一个字符串中,特定字符串后的部分
定义: java.lang.String substringAfter(java.lang.String, java.lang.String)
示例: P.O. Box: ${fn:substringAfter(zip, "-")}
substringBefore 函数
作用: 取 一个字符串中,特定字符串前的部分
定义: java.lang.String substringBefore(java.lang.String, java.lang.String)
示例: Zip (without P.O. Box): ${fn:substringBefore(zip, "-")}
toLowerCase 函数
作用: 将一个字符串转为小写
定义: java.lang.String toLowerCase(java.lang.String)
示例: Product name: ${fn.toLowerCase(product.name)}
toUpperCase 函数
作用: 将一个字符串转为大写
定义: java.lang.String toUpperCase (java.lang.String)
示例: Product name: ${fn. toUpperCase (product.name)}
trim 函数
作用: 对字符串进行trim,去除两端不可显示字符
定义: java.lang.String trim( java.lang.String)
示例: Product name: ${fn. trim (product.name)}