jstl标签大汇总 总结免费.docx
《jstl标签大汇总 总结免费.docx》由会员分享,可在线阅读,更多相关《jstl标签大汇总 总结免费.docx(17页珍藏版)》请在冰豆网上搜索。
jstl标签大汇总总结免费
jstl标签大汇总2012总结(免费)
JSTL核心标签库标签共有13个,功能上分为4类:
1.表达式控制标签:
out、set、remove、catch
2.流程控制标签:
if、choose、when、otherwise
3.循环标签:
forEach、forTokens
4.URL操作标签:
import、url、redirect
使用标签时,一定要在jsp文件头加入以下代码:
<%@taglibprefix="c"uri="
下面分别对这些标签进行说明:
1.out>用来显示数据对象(字符串、表达式)的内容或结果
使用Java脚本的方式为:
<%out.println("hello")%><%=表达式%>
使用JSTL标签:
outvalue="字符串">,例如:
outvalue="<要显示的数据对象(未使用转义字符)>"escapeXml="true"default="默认值">
out>
outvalue="<要显示的数据对象(使用转义字符)>"escapeXml="false"default="默认值">
out>
outvalue="${null}"escapeXml="false">使用的表达式结果为null,则输出该默认值
out>
那么网页显示效果为:
2.set>用于将变量存取于JSP范围中或JavaBean属性中。
下面的例子中假设已经有Person.java这个类文件。
<%@pagelanguage="java"import="java.util.*"pageEncoding="gb2312"%>
<%@pagecontentType="text/html;charset=utf-8"%>
useBeanid="person"class="lihui.Person">
useBean>
<%@taglibprefix="c"uri="
DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN">
JSTL测试
setvalue="张三"var="name1"scope="session">
set>
setvar="name2"scope="session">李四
set>
setvalue="赵五"target="${person}"property="name">
set>
settarget="${person}"property="age">19
set>
从session中得到的值:${sessionScope.name1}
从session中得到的值:${sessionScope.name2}
从Bean中获取对象person的name值:outvalue="${person.name}">
out>
从Bean中获取对象person的age值:outvalue="${person.age}">
out>
一共有四种语法格式,前两种是给jsp的范围变量赋值,后两个是给javabean变量赋值
效果如下:
3.remove>主要用来从指定的jsp范围内移除指定的变量。
使用类似,下面只给出语法:
removevar="变量名"[scope="page|request|session|application"]>
remove>
4.catch>用来处理JSP页面中产生的异常,并存储异常信息
catchvar="name1">
容易产生异常的代码
catch>
如果抛异常,则异常信息保存在变量name1中。
5.if>
iftest="条件1"var="name"[scope="page|request|session|application"]>
remove>
例:
setvalue="赵五"target="${person}"property="name">
set>
settarget="${person}"property="age">19
set>
iftest="${person.name=='赵武'}"var="name1">
if>
outvalue="name1的值:
${name1}">
out>
iftest="${person.name=='赵五'}"var="name2">
if>
outvalue="name2的值:
${name2}">
out>
效果:
6.choose>when>otherwise>三个标签通常嵌套使用,第一个标签在最外层,最后一个标签在嵌套中只能使用一次
例:
setvar="score">85
set>
choose>
whentest="${score>=90}">
你的成绩为优秀!
when>
whentest="${score>=70&&score<90}">
您的成绩为良好!
when>
whentest="${score>60&&score<70}">
您的成绩为及格
when>
otherwise>
对不起,您没有通过考试!
otherwise>
choose>
7.forEach>
语法:
forEachvar="name"items="Collection"varStatus="statusName"begin="begin"end="end"step="step">
forEach>
该标签根据循环条件遍历集合Collection中的元素。
var用于存储从集合中取出的元素;items指定要遍历的集合;varStatus用于存放集合中元素的信息。
varStatus一共有4种状态属性,下面例子中说明:
ViewCode
显示效果:
8.forTokens>用于浏览字符串,并根据指定的字符串截取字符串
语法:
forTokensitems="stringOfTokens"delims="delimiters"[var="name"begin="begin"end="end"step="len"varStatus="statusName"]>
forTokens>
还是看个例子吧:
ViewCode
显示结果:
9.URL操作标签
(1)import>把其他静态或动态文件包含到JSP页面。
与include>的区别是后者只能包含同一个web应用中的文件,前者可以包含其他web应用中的文件,甚至是网络上的资源。
语法:
importurl="url"[context="context"][value="value"][scope="..."][charEncoding="encoding"]>
import>
importurl="url"varReader="name"[context="context"][charEncoding="encoding"]>
import>
看个例子:
ViewCode
显示结果:
URL路径有个绝对路径和相对路径。
相对路径:
importurl="a.txt"/>那么,a.txt必须与当前文件放在同一个文件目录下。
如果以"/"开头,表示存放在应用程序的根目录下,如Tomcat应用程序的根目录文件夹为webapps。
导入该文件夹下的b.txt的编写方式:
importurl="/b.txt">。
如果要访问webapps管理文件夹中的其他Web应用,就要用context属性。
例如访问demoProj下的index.jsp,则:
importurl="/index.jsp"context="/demoProj"/>.
(2)redirect>该标签用来实现请求的重定向。
例如,对用户输入的用户名和密码进行验证,不成功则重定向到登录页面。
或者实现Web应用不同模块之间的衔接
语法:
redirecturl="url"[context="context"]/>
或:
redirecturl="url"[context="context"]>
paramname="name1"value="value1">
redirect>
看个例子:
1<%@pagecontentType="text/html;charset=GBK"%>
2<%@taglibprefix="c"uri="
3redirecturl="http:
//127.0.0.1:
8080">
4paramname="uname">lihui
param>
5paramname="password">11111
param>
6
redirect>
则运行后,页面跳转为:
http:
//127.0.0.1:
8080/?
uname=lihui&password=11111
(3)url>用于动态生成一个String类型的URL,可以同上个标签共同使用,也可以使用HTML的标签实验超链接。
语法:
urlvalue="value"[var="name"][scope="..."][context="context"]>
paramname="name1"value="value1">
url>
或:
urlvalue="value"[var="name"][scope="..."][context="context"]/>
看个例子:
ViewCode
显示:
JSTLfn标签
2007-07-2617:
23:
07| 分类:
OPENSOURCE| 标签:
|字号大中小 订阅
<%@taglibprefix="fn"uri="%>
方法的描述:
函数名
函数说明
使用举例
contains
判断字符串是否包含另外一个字符串
iftest="${fn:
contains(name,searchString)}">
containsIgnoreCase
判断字符串是否包含另外一个字符串(大小写无关)
iftest="${fn:
containsIgnoreCase(name,searchString)}">
endsWith
判断字符串是否以另外字符串结束
iftest="${fn:
endsWith(filename,".txt")}">
escapeXml
把一些字符转成XML表示,例如<字符应该转为<
${fn:
escapeXml(param:
info)}
indexOf
子字符串在母字符串中出现的位置
${fn:
indexOf(name,"-")}
join
将数组中的数据联合成一个新字符串,并使用指定字符格开
${fn:
join(array,";")}
length
获取字符串的长度,或者数组的大小
${fn:
length(shoppingCart.products)}
replace
替换字符串中指定的字符
${fn:
replace(text,"-","")}
split
把字符串按照指定字符切分
${fn:
split(customerNames,";")}
startsWith
判断字符串是否以某个子串开始
iftest="${fn:
startsWith(product.id,"100-")}">
substring
获取子串
${fn:
substring(zip,6,-1)}
substringAfter
获取从某个字符所在位置开始的子串
${fn:
substringAfter(zip,"-")}
substringBefore
获取从开始到某个字符所在位置的子串
${fn:
substringBefore(zip,"-")}
toLowerCase
转为小写
${fn.toLowerCase(product.name)}
toUpperCase
转为大写字符
${fn.UpperCase(product.name)}
trim
去除字符串前后的空格
${fn.trim(name)}
函数
描述
fn:
contains(string,substring)
如果参数string中包含参数substring,返回true
fn:
containsIgnoreCase(string,substring)
如果参数string中包含参数substring(忽略大小写),返回true
fn:
endsWith(string,suffix)
如果参数string以参数suffix结尾,返回true
fn:
escapeXml(string)
将有特殊意义的XML(和HTML)转换为对应的XMLcharacterentitycode,并返回
fn:
indexOf(string,substring)
返回参数substring在参数string中第一次出现的位置
fn:
join(array,separator)
将一个给定的数组array用给定的间隔符separator串在一起,组成一个新的字符串并返回。
fn:
length(item)
返回参数item中包含元素的数量。
参数Item类型是数组、collection或者String。
如果是String类型,返回值是String中的字符数。
fn:
replace(string,before,after)
返回一个String对象。
用参数after字符串替换参数string中所有出现参数before字符串的地方,并返回替换后的结果
fn:
split(string,separator)
返回一个数组,以参数separator为分割符分割参数string,分割后的每一部分就是数组的一个元素
fn:
startsWith(string,prefix)
如果参数string以参数prefix开头,返回true
fn:
substring(string,begin,end)
返回参数string部分字符串,从参数begin开始到参数end位置,包括end位置的字符
fn:
substringAfter(string,substring)
返回参数substring在参数string中后面的那一部分字符串
fn:
substringBefore(string,substring)
返回参数substring在参数string中前面的那一部分字符串
fn:
toLowerCase(string)
将参数string所有的字符变为小写,并将其返回
fn:
toUpperCase(string)
将参数string所有的字符变为大写,并将其返回
fn:
trim(string)
去除参数string首尾的空格,并将其返回
JSTL常用标签汇总
JSTL的核心标签库主要包括:
表达式操作、流程控制、迭代操作和URL操作。
以下是JSTL常用标签的用法总结:
一、表达式操作
1.out>
作用:
用于显示数据的内容。
语法1:
没有本体内容
outvalue="value"[escapeXml="{true|false}"][default="defaultValue"]/>
语法2:
有本体内容
outvalue="value"[escapeXml="{true|false}"]>
defaultvalue
out>
属性说明:
value:
需要显示出来的值。
default:
如果value的值为null时,则显示default指定的值。
escapeXml:
是否转换特殊字符,默认为true。
即默认会将<、>、’、”和&转换为<、>、'、"和&。
如果设为 false,则不进行转换。
2.set>
作用:
用于将变量的值存储在JSP范围中或JavaBean的属性中。
语法1:
将value的值存储在范围为scope的varName变量中
setvalue="value"var="varName"[scope="{page|request|session|application}"]/>
语法2:
将本体内容的数据存储在范围为scope的varName变量中
setvar="varName" [scope="{page|request|session|application}"]>
...本体内容
set>
语法3:
将value的值存储在target对象的propertyName属性中
setvalue="value"target="target"property="propertyName"/>
语法4:
将本体内容的数据存储在target对象的propertyName属性中
settarget="target"property="propertyName">
...本体内容
set>
属性说明:
value:
要被存储的值。
var:
欲存入的变量名称。
scope:
var变量的JSP范围。
默认为page范围。
target:
为一JavaBean或Map对象。
property:
指定的target对象的属性。
3.remove>
作用:
移除变量。
语法:
removevar="varName"[scope="{page|request|session|application}"]/>
属性说明:
var:
要移除的变量。
scope:
var变量所在的JSP范围,默认为page范围。
4.catch>
作用:
用于处理产生错误的异常情况,并将错误信息存储起来。
语法:
catch[var="varName"]>
...欲抓取错误的部分
catch>
属性说明:
var:
将错误信息存储在指定的变量中,可以通过该变量获取错误信息。
二、流程控制
1.if>
作用:
类似if判断语句,用于表达式判断。
语法1:
没有本体内容
iftest="testCondition"var="varName"[scope="{page|request|session|application}"]/>
语法2:
有本体内容
iftest="testCondition"[var="varName"][scope="{page|request|session|application}"]/>
...本体内容
if>
属性说明:
test:
当该属性中的表达式运算结果为true,则会执行本体内容,为false则不执行,该标签必须要有test属性。
var:
存储test的运算结果,为true或false。
scope:
var变量的JSP范围。
2.choose>、when>、otherwise>
作用:
这三个标签必须组合使用,用于流程控制。
范例:
choose>
whentest="${condition1}">
condition1为true
when>
whentest="${condition2}">
condition2为true
when>
otherwise>
condition1和condition2都为false
otherwise>
choose>
范例说明:
当condition1为true时,会显示“condition1为true”;当condition1为false且condition2为true时,会显示“condition2为true”,如果两者都为false,则会显示“condition1和condition2都为false”。
注意:
若condition1和condition2的运算结果都为true时,此时只会显示"condition1为true"。
限制说明:
a.when>和otherwise>标签必须在choose>和
choose>之间使用。
b.在同一个choose>中,otherwise>必须是最后一个标签,且只能有一个otherwise>标签。
when>可以有多个。
c.在同一个choose>中,当所有when>的test都为false时,才执行otherwise>的本体内容。
三、迭代操作
1.forEach>
作用:
为循环控制,它可以将集合(Collection)中的成员循序浏览一遍。
运作方式为当条件符合时,就会持续重复执行forEach>的本体内容。
语法1:
迭代一个集合对象中的所有成员
forEachitems="collection"[var="varName"][varStatus="varStatusName"][begin="begin"][end="end"][step="step"]/>
...本体内容
forEach>
语法2:
迭代指定次数
forEach[var="varName"][varStatus="varStatusName"]begin="begin"end="end"[step="step"]>
...本体内容
forEach>
属性说明:
items:
被迭代的集合对象。
var:
存放当前指到的集合对象中的成员。
varStatus:
存放当前指到的成员的相关信息。
(index:
当前指到的成员的索引;count:
当前总共指到成员的总数;first:
当前指到的成员 是否为第一个成员;last:
当前指到的