JSTL 各项标签及其属性

来源:互联网 发布:斗鱼公司 知乎 编辑:程序博客网 时间:2024/04/30 11:06

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)}