JSTL 标签 JSTL 标签种类 说 明 核心标签 包含JSTL核心操作所需的标签,例如数据输出、循环流程控制以及URL操作等 说 明 核心标签 包含JSTL核心操作所需的标签,例如数据输出、循环流程控制以及URL操作等 i18n国际化格式标签 进行数值与日期数据格式化、国际化资源网页设定所需的标签 SQL标签 运用SQL与操作资库所需的标签 XML标签 剖析XML文件所需的标签 函数标签 包含字符串处理与其它特定功能之JSTL标签 JSP 动态网页新技术
JSTL运行环境 JSTL需要两个文件,jstl.jar和standard.jar,将其复制到Tomcat网站根目录下的文件夹WEB-INF\lib当中,重新启动Tomcat。 使用JSTL之前,必须引用taglib指令声明网页所要使用的标签种类 。 <%@taglib prefix=tabName uri=uriString %> prefix代表标签种类的前缀词 uri代表标签的URI JSP 动态网页新技术
标签前缀词以及uri JSTL 标签种类 前 缀 词 uri 核心标签 c http://java.sun.com/jsp/jstl/core i18n国际化格式标签 fmt http://java.sun.com/jsp/jstl/fmt SQL标签 sql http://java.sun.com/jsp/jstl/sql XML标签 xml http://java.sun.com/jsp/jstl/xml 函数标签 fn http://java.sun.com/jsp/jstl/functions JSP 动态网页新技术
JSTL 核心标签 分 类 标 签 说 明 一般行为 out 将指定的数据内容输出至网页上 set 将特定的数据内容储存至指定变量 分 类 标 签 说 明 一般行为 out 将指定的数据内容输出至网页上 set 将特定的数据内容储存至指定变量 remove 移除指定变量的数据内容 catch 补捉程序例外 URL处理 import 载入外部文件 url 设定一个超级链接地址 redirect 转向网页 param 设定地址参数 流程控制 if if流程判断式 When/otherwise/choose 多重选择判断式 循环 forEach 对象集合迭代列举操作 forTaokens 解释以标记符号分隔字符串 JSP 动态网页新技术
<c:out> 语法1:未包含主体(body) <c:out value= "value" [escapeXml= "{true|false}"] [default= "defaultValue"] /> 语法2:包含主体(body) <c:out value= "value" [escapeXml= "{true|false}"]> default value </c:out> JSP 动态网页新技术
<c:out> 属性设定 属 性 动 态 类 型 说 明 value 是 Object 输出的内容 escapeXml 属 性 动 态 类 型 说 明 value 是 Object 输出的内容 escapeXml boolean 是否转换特殊字符 default 当输出结果为null,指定默认值 JSP 动态网页新技术
escapeXml escapeXml用来指定是否转换特殊字符,<c:out>在默认的情形下,会将某些特殊字符,例如 <、>、& 等等 。 字 符 Entity Code < > & & ' ' " " JSP 动态网页新技术
<c:set> 语法1:将value值储存至范围变量varName <c:set value="value" var="varName" [scope="{page|request|session|application}"]/> 语法2:将本体(body)内容设定储存至范围变量varName <c:set var="varName" [scope="{page|request|session|application}"]> body content </c:set> 语法3:将value值储存至目标对象target的属性propertyName <c:set value="value" target="target" property="propertyName"/> 语法4:将本体(body)内容储存至目标对象target的属性propertyName <c:set target="target" property="propertyName"> JSP 动态网页新技术
<c:set>属性设定 属 性 动 态 类 型 说 明 value 是 Object 设定值 var 否 String 属 性 动 态 类 型 说 明 value 是 Object 设定值 var 否 String 储存设定值的变量名称 scope var的范围 target 属性将被设定的目标对象 property 目标对象的属性 JSP 动态网页新技术
<c:remove> 用来移除某个范围变量的內容值 <c:remove var="varName" [scope= "{page|request|session|application}"]/> JSP 动态网页新技术
<c:catch> <c:catch>标签可以用来取得错误的信息,同时进行适当的处理,避免网页出现无法理解的内容 。 <c:catch [var=”varName”]> nested actions </c:catch> nested actions为某一段可能发生错误的网页内容,var用来储存错误发生时,与错误有关的信息内容。 JSP 动态网页新技术
建立URL <c:url>标签在JSP网页动态指定一个网址字符串 。 语法1:无本体内容 <c:url value="value" [context="context"] [var="varName"] [scope="{page|request|session|application}"]/> 语法2:在本体内容指定数字符串 [var="varName"] [scope="{page|request|session|application}"]> <c:param> subtags </c:url> JSP 动态网页新技术
URL属性 value代表所要设定的网页资源位置 。 context用来指定一个外部资源 。 属 性 动态 类 型 说 明 value 是 String 指定操作的URL context 网站外部内容的设定值,一个URL资源的相对位置 var 否 输出的范围变量名称 scope var的范围。 value代表所要设定的网页资源位置 。 context用来指定一个外部资源 。 var代表一个变量,如果有指定,URL资源的内容将被输出至指定的变量 scope则是变量的范围,var变量只在这个范围里面有效 。 JSP 动态网页新技术
<c:param> 语法1:將属性值指定給value属性 <c:param name="name" value="value"/> 语法2:將属性值指定給本体內容 <c:param name="name"> parameter value </c:param> JSP 动态网页新技术
name属性必须有值,否则标签将不会有任何操作 。 <c:param>属性 属 性 动态 类 型 说 明 name 是 String 参数名称 value 参数值 name属性必须有值,否则标签将不会有任何操作 。 JSP 动态网页新技术
使用<c:param> <c:param>标签放在<c:url>本体內容当中,可用来设定连接所要传递的参数內容: <c:url value=urlstring > <c:param name="firstPara" value="123456" /> </c:url> <c:param>所指定的参数值firstPara,与URL字符串一同被送出: urlstring? FirstPara=123456 JSP 动态网页新技术
<c:import> 语法1:载入数据内容直接嵌入标签或是输出成为String对象 <c:import url="url" [context="context"] [var="varName"] [scope="{page|request|session|application}"] [charEncoding="charEncoding"]> optional body content for <c:param> subtags </c:import> 语法2:载入数据内容直接输出成Reader对象 <c:import url= "url" [context="context"] varReader="varReaderName" body content where varReader is consumed by another action JSP 动态网页新技术
<c:import>属性 url代表外部资源所在位置的相对或是绝对URL。 属 性 动态 类 型 说 明 url 是 String 载入资源的URL context 网站外部内容的设定值 var 否 输出的范围变量名称 scope var的范围 charEncoding 载入文件的字符编码 varReader 输出的Reader对象名称 url代表外部资源所在位置的相对或是绝对URL。 null或是空值都将产生一个JspException例外。 url其他的属性都可以省略。 JSP 动态网页新技术
重新定向 语法1:无主体(body)内容 <c:redirect url="value" [context="context"]/> 语法2:指定搜寻字符串参数的主体内容 <c:param> subtags </c:redirect> url参数代表所要转向的URL地址,当你在网页当中设定<c:redirect>标签,并且指定其url参数,网页运行后,将转向此url所代表的目标地址 。 JSP 动态网页新技术
流程控制 核心标签中的if、choose和when,提供相当于程序语言流程控制的功能 。 <c:if>与Java中的if语句相同 。 <c:choose>则被运用于需要进行多重判断的场合,它本身是一个框架,判断内容则由<c:when>和<c:otherwise>两个标签完成 。 JSP 动态网页新技术
<c:if> 语法1:无本体内容 <c:if test="testCondition" var="varName" [scope="{page|request|session|application}"]/> 语法2:包含本体内容 [var="varName"] [scope="{page|request|session|application}"]> body content </c:if> JSP 动态网页新技术
<c:if>属性 test 是最重要的属性,为标签的条件判断式。 var用来储存判断式的输出結果 属 性 动态 类 型 说 明 属 性 动态 类 型 说 明 test 是 boolean 载入资源的URL var 否 String 输出判断结果的范围变量名称 scope var的范围 test 是最重要的属性,为标签的条件判断式。 var用来储存判断式的输出結果 JSP 动态网页新技术
<c:choose>、<when>与<otherwise> body content (<when> and <otherwise> subtags) </c:choose> <when>与<otherwise>构成<c:choose>标签內容区块。 语法 - <c: when > <c:when test="testCondition"> body content </c:when> 语法 - <c: otherwise > <c:otherwise> conditional block </c:otherwise> JSP 动态网页新技术
<c:forEach> 语法1:迭代对象集合内容。 <c:forEach[var="varName"] items="collection" [varStatus="varStatusName"] [begin="begin"] [end="end"] [step="step"]> body content </c:forEach> 语法2:迭代特定次数。 <c:forEach [var="varName"] [varStatus="varStatusName"] begin="begin" end="end" [step="step"]> JSP 动态网页新技术
<c:forEach>属性 属 性 动态 类 型 说 明 var 否 String 储存指定的迭代成员 items 是 集合对象 属 性 动态 类 型 说 明 var 否 String 储存指定的迭代成员 items 是 集合对象 迭代的集合对象 varStatus 储存指定迭代成员的状态内容 begin int 迭代的开始值 end 迭代的结束值 step 每次迭代的间隔值 JSP 动态网页新技术
<c:forEach>属性 var用来指定网页当中所要迭代的对象 。 items则是每一次迭代所取得的对象内容 。 varStatus为目前对象的相关内容信息 。 begin、end以及step则是相关的属性,分别代表迭代的开始、结束以及区间,这三个值相互影响,设定不正确可能导致程序流程的运行错误 。 JSP 动态网页新技术
<c:forTaokens > <c:forTokens items="stringOfTokens" delims="delimiters" [var="varName"] [varStatus="varStatusName"] [begin="begin"] [end="end"] [step="step"]> body content </c:forTokens> JSP 动态网页新技术
I18n 与国际化 分 类 标 签 说 明 国际化设定 setLocale 设定所使用的语言文化区域 requestEncoding 分 类 标 签 说 明 国际化设定 setLocale 设定所使用的语言文化区域 requestEncoding 指定编码方式 资源文件系结 bundle 指定所要使用的资源文件名称 setBundle 设定预设的资源文件 message 取得资源文件的内容 数字日期格式 timeZone 转换时区格式 setTimeZone 储存时区信息 formatNumber 格式化数值 parseNumber 解释特定数值格式 formatDate 格式化日期 parseDate 解释特定日期格式 JSP 动态网页新技术
设定区域-<fmt:setLocale> <fmt:setLocale value="locale" [variant="variant"] [scope="{page|request|session|application}"]/> value属性是使用<fmt:setLocale>标签唯一不可省略的属性项目,它代表此标签所要指定的区域代号 。 value由两个小写字母所组成的语言代码(例如zh)所表示,另外,它还可以加上同样由两个字母所组成的国家代码,这两者之间以-或是_作连接。 JSP 动态网页新技术
指定编码-<fmt:requestEncoding> <fmt:requestEncoding [value="charsetName"]/> value属性代表所要指定的编码方式字符串,例如设为GB2312可以让网页正确的处理中文乱码的问题。 JSP 动态网页新技术
存取 i18n 区域化內容 支持国际间不同文化区域语系的网页功能,是通过提供其关联的资源文件来达到目的 。 <fmt:bundle>用来指定所要使用的资源文件名称 。 < fmt:setBundle >设定默认的资源文件,当指定的资源文件不存在时,直接套用默认的资源文件 。 <fmt:message>用来取得资源文件的内容,将其显示在网页上 。 JSP 动态网页新技术
I18n国际化网页 JSP 动态网页新技术
<fmt:bundle> <fmt:bundle> <fmt:bundle basename="basename" [prefix="prefix"]> body content </fmt:bundle> 属 性 动态 类 型 说 明 basename 是 String 资源文件的名称,不包含文件本身的扩展名 prefix 指定<fmt:message>标签当中,key值的预设前缀 JSP 动态网页新技术
<fmt: message > 语法1:无本体内容 <fmt:message key="messageKey" [bundle="resourceBundle"] [var="varName"] [scope="{page|request|session|application}"]/> 语法2:包含指定信息参数的本体内容 <fmt:message key="messageKey" [bundle="resourceBundle"] [scope="{page|request|session|application}"]> <fmt:param> subtags </fmt:message> JSP 动态网页新技术
<fmt: message > 语法3:包含指定选择性信息参数与key值的本体内容 <fmt:message [bundle="resourceBundle"] [var="varName"] [scope="{page|request|session|application}"]> key optional <fmt:param> subtags </fmt:message> JSP 动态网页新技术
<fmt: message > 属性 属 性 动态 类 型 说 明 key 是 String 所要取得的资源文件内容key值 bundle LocalizationContext 资源文件资料来源 var 否 用来储存信息内容的变量名称 scope 变量var的有效范围 JSP 动态网页新技术
< fmt:setBundle > <fmt:setBundle basename="basename" var="varName"] [scope="{page|request|session|application}"]/> <fmt:setBundle>标签的主要功能,便是用来设定所要读取的预设资源文件,除了basename,var用以指定变量的名称,此变量储存所要读取的资源文件内容 。 资源文件是一种扩展名为properties的文本文件,可以利用notepad等简 单的文字编辑器进行编辑,其内容由 键/值(key/value) 格式的数据所组成 <fmt: message >标签指定所要取得的键,取出对应的值(value) 。 JSP 动态网页新技术
格式化 日期、时间、货币等数据,不同的地区有不同的显示方式。 通过格式化标签的设定,网页当中的数据内容,可以随着不同的文化区域特性,而改变其显示的数据格式 。 设定时区的<fmt:timeZone>和<fmt:setTimeZone> 。 数字格式化标签有<fmt:formatNumber>和<fmt:parseNumber>。 日期时间显示格式化标签有<fmt:formatDate>和<fmt:parseDate>。 JSP 动态网页新技术
设定时区 语法 <fmt:timeZone value="timeZone"> body content <fmt:setTimeZone value="timeZone" [var="varName"] [scope="{page|request|session|application}"]/> var属性用来储存时区的设定,当然这个属性是选择性的,而 scopde则是变量的有效范围。 JSP 动态网页新技术
数字格式化 语法1:无本体内容 <fmt:formatNumber value="numericValue" [type="{number|currency|percent}"] [pattern="customPattern"] [currencyCode="currencyCode"] [currencySymbol="currencySymbol”] [groupingUsed="{true|false}"] [maxIntegerDigits="maxIntegerDigits"] [minIntegerDigits="minIntegerDigits"] [maxFractionDigits="maxFractionDigits"] [minFractionDigits="minFractionDigits"] [var="varName"] [scope="{page|request|session|application}"]/> JSP 动态网页新技术
数字格式化 语法2:指定格式化数值的本体内容 <fmt:formatNumber [type="{number|currency|percent}"] [pattern="customPattern"] [currencyCode="currencyCode"] [currencySymbol="currencySymbol"] [groupingUsed="{true|false}"] [maxIntegerDigits="maxIntegerDigits"] [minIntegerDigits="minIntegerDigits"] [maxFractionDigits="maxFractionDigits"] [minFractionDigits="minFractionDigits"] [var="varName"] [scope="{page|request|session|application}"]> numeric value to be formatted </fmt:formatNumber> JSP 动态网页新技术
<fmt:formatNumber>属性 属 性 动态 类 型 说 明 value 是 String/ Number 被格式化的数值 var 否 String 储存格式化数值的范围变量 scope 变量范围 type 指定数值被格式化成为数字、货币或是百分比形式 pattern 自定义格式化样式 currencyCode ISO4217货币代码,搭配格式(type)作显示,只有设定为货币格式的时候,这个值才有意义 currencySymbol 货币符号,搭配格式(type)作显示,只有设定为货币格式的时候,这个值才有意义 JSP 动态网页新技术
<fmt:formatNumber>属性 属 性 动态 类 型 说 明 groupingUsed 是 boolean 指定是否格式化输出包含分隔符 maxIntegerDigits int 格式化输出结果当中,整数字数部份显示的最大位数 minIntegerDigits 格式化输出结果当中,整数字数部份显示的最小位数 maxFractionDigits minFractionDigits JSP 动态网页新技术
<fmt:formatNumber>属性说明 分别代表所要进行格式处理的数值,储存格式化结果的变量以及可指定变量范围的scope 。 type指定格式化的样式,number、currency以及代表指定的数据将以数值、货币或是百分比的形式进行格式化,pattern则是让用户能够自行指定格式化的样式。 currencyCode与currencySymbol是用来表示货币数据的专用属性,与type属性当中的货币(currecy)格式搭配使用,currencyCode为ISO4217所规范的货币代码,如美金的USD、或是大陆人民币的CNY等等。currencySymbol则代表货币的显示符号如$。 groupingUsed指定是否格式化的数字以分隔符作显示 。 maxIntegerDigits、minIntegerDigits、maxFractionDigits和minFractionDigits,均用以来控制数值的显示位数,前两个指定一个数值当中,最大与最小可显示的位数,后两个则是指定小数的位数。 JSP 动态网页新技术
<fmt:parseNumber> 语法1:无本体内容 <fmt:parseNumber value="numericValue" [type="{number|currency|percent}"] [pattern="customPattern"] [parseLocale="parseLocale"] [integerOnly="{true|false}”] [var="varName"] [scope="{page|request|session|application}"]/> JSP 动态网页新技术
<fmt:parseNumber> 语法2:包含本体内容 <fmt:parseNumber [type="{number|currency|percent}"] [pattern="customPattern"] [parseLocale="parseLocale"] [integerOnly="{true|false}"] [var="varName"] [scope="{page|request|session|application}"]> numeric value to be parsed </fmt:parseNumber> JSP 动态网页新技术
日期格式化 <fmt:formatDate value="date"[type="{time|date|both}"] [dateStyle="{default|short|medium|long|full}"] [timeStyle="{default|short|medium|long|full}"] [pattern="customPattern"] [timeZone="timeZone"] [var="varName"] [scope="{page|request|session|application}"]/> JSP 动态网页新技术
<fmt:formatDate>属性 属 性 动态 类 型 说 明 value 是 java.util.Date 格式化的日期或是时间数据 type String 指定是否格式化日期、时间或是两者 dateStyle 预先定义的日期格式化样式 timeStyle 预先定义的时间格式化样式 pattern 自定义格式化样式 timeZone String/ java.util.TimeZone 显示格式化之时间数据的时区 var 储存格式化结果的变量 scope 否 变量范围 JSP 动态网页新技术
函数标签 分 类 标 签 说 明 字符串比对 contains 查看是否字符串当中包含指定的子字符串 containsIgnore-Case 分 类 标 签 说 明 字符串比对 contains 查看是否字符串当中包含指定的子字符串 containsIgnore-Case 在忽略大小写的情形下,检视是否字符串当中包含指定的子字符串 endsWith 查看是否字符串以指定的字尾作结束 startsWith 查看是否字符串以指定的前缀开始 indexOf 返回字符串之间第一个符合指定子字符串的索引值 获取子字符串 substring 返回字符串当中指定区域的子字符串 substringAfter 返回字符串当中指定字符串后面的子字符串 substringBefore 返回字符串当中指定字符串之前的子字符串 JSP 动态网页新技术
函数标签 分 类 标 签 说 明 字符串调整 toLowerCase 将字符串中所有的字符转换成为小写 toUpperCase 分 类 标 签 说 明 字符串调整 toLowerCase 将字符串中所有的字符转换成为小写 toUpperCase 将字符串中所有的字符转换成为大写 trim 移除字符串两端的空白 replace 以指定的子字符串取代部份字符串 split 分割字符串成为一个字符串数组 join 将一个字符串数组以指定的符号合并成为字符串 其它 escapeXml 转换跳脱字符 length 返回字符串的字符数目 JSP 动态网页新技术
字符串比对 语法 contains fn:contains(string, substring) containsIgnoreCase fn:containsIgnoreCase(string, substring) 属性 参数 类型 说明 string String 函数所要比对的字符串 substring 用以比对的子字符串 JSP 动态网页新技术
字符串比对 语法 endsWith fn:endsWith(string, suffix) -> boolean startsWith fn:startsWith(string, prefix) -> boolean 属性 参 数 类 型 说 明 string String 函数所要比对的字符串 Suffix/prefix 用以比对的前缀或字尾 JSP 动态网页新技术
indexOf indexOf提供取得字符串当中,某个子字符串第一次于其中出现的位置索引,索引值以0为基础 。 语法 fn:indexOf(string, substring) JSP 动态网页新技术
获取子字符串 语法 fn:substring(string, beginIndex, endIndex) 属性 参 数 类 型 说 明 参 数 类 型 说 明 string String 函数所要操作的字符串 beginIndex int 获取子字符串的起始索引值 endIndex 获取子字符串的结束索引值 JSP 动态网页新技术
获取子字符串 语法 substringAfter fn:substringAfter(string, substring) substringBefore fn:substringBefore(string, substring) 这2个语法接受2个参数,其中第2个参数为所要比对的子字符串,其返回值为所获取的子字符串。 JSP 动态网页新技术
字符串调整-toLowerCase & toUpperCase 语法 toLowerCase fn:toLowerCase(string) -> String toUpperCase fn:toUpperCase (string) -> String fn:trim(string) -> String JSP 动态网页新技术
字符串调整 - split & join 语法 split fn:split(string, delimiters) -> String[] join fn:join(array, separator) -> String JSP 动态网页新技术
字符串调整-replace 语法 fn:replace(inputString, beforeSubstring, afterSubstring) 属性 参 数 类 型 说 明 inputString String 函数所要进行置换操作的字符串 beforeSubstring 被置换的子字符串 afterSubstring 要置换的子字符串 JSP 动态网页新技术
escapeXml & length escapeXml用来转换跳脱字符的符号,使其能够不经转换直接输出于网页上 。 fn:escapeXml(string)->String scapeXml将指定字符串参数当中的跳脱字符,例如 <、>、& 等等,转换成为其对应码,效果与<c:out>标签当中escapeXml属性设为true相同。 Length回传指定字符串当中所包含的字符数目 。 fn:length(input) -> integer length函数接受一个input参数,并且返回其长度。必须注意的是,除了字符串之外,其中的input也可是一个集合对象,此时其返回的是集合当中的对象数目 JSP 动态网页新技术