jstl中文参考手册
jstl教程

•
第一种语法示例:<br>
•
<c:set var="number" value="2" />
•
<c:out value="number的值为:${number}"/><br>
•
第二种语法示例:<br>
•
<c:set var="number">
•
2
•
</c:set>
•
<c:out value="number的值为:${number}"/>
9.1 JSTL简介
• JSTL标签是基于JSP页面的,这些标签可以插入在 JSP代码中,在本质上JSTL也就是提前定义好了的 一组标签,这些标签封装了不同的功能,当在页 面上调用这个标签的时候,等于就是调用了封装 起来的功能,这些标签可以在页面上输出内容、 查询数据库、处理XML文档等,JSTL的标签库基本 上可以分为五类,包括JSTL核心库、数据库标签 库、XML操作标签库、国际化和格式标签库和函数 标签库,其中在核心库包括基本的输入输出、流 程控制、循环等功能;数据库标签库主要包括基 本的数据库操作功能;XML标签库用来处理XML文 档;国际化和格式标签库主要功能是处理国际化 和文字格式的标准化。
•
</c:when>
•
<c:when test="${IDE=='JCreator'}">
•
<c:out value="你使用的开发工具为JCreator"/>
JSTL使用手册

JSTL表达式描述9.1 概述在JSP页面中,使用标签库代替传统的Java片段语言来实现页面的显示逻辑已经不是新技术了,然而,由自定义标签很容易造成重复定义和非标准的实现。
鉴于此,出现了JSTL(JSP Standard Tag Library)。
大多数JSP页面逻辑提供了实现的JSTL技术,该技术本身就是一个标签库。
Sun公司Java规范标准的JSTL由apache jakarta组织负责维护。
作为开源的标准技术,它一直在不断地完善。
JSTL的发布包有两个版本:Standard-1.0 Taglib、Standard-1.1 Taglib,它们在使用时是不同的。
8Standard-1.0 Taglib(JSTL1.0)支持Servlet2.3和JSP1.2规范,Web应用服务器Tomcat4支持这些规范,而它的发布也在Tomcat 4.1.24测试通过了。
8Standard-1.1 Taglib(JSTL1.1)支持Servlet2.4和JSP2.0规范,Web应用服务器Tomcat5支持这些规范,它的发布在Tomcat 5.0.3测试通过了。
在本章的介绍中,将以由Sun发布的Standard-1.1 Taglib标签库为主,而apache jakarta组织发布的开源标签库,可以从/taglibs/找到所需要的帮助。
Sun发布的标准JSTL1.1标签库有以下几个标签:8核心标签库:包含Web应用的常见工作,比如:循环、表达式赋值、基本输入输出等。
8国际化标签库:用来格式化显示数据的工作,比如:对不同区域的日期格式化等。
8数据库标签库:可以做访问数据库的工作。
8XML标签库:用来访问XML文件的工作,这是JSTL标签库的一个特点。
8函数标签库:用来读取已经定义的某个函数。
此外,JSTL还提供了EL表达式语言(Expression Language)来进行辅助的工作。
9.2 JSTL EL表达式语言JSTL标签库由标签库和EL表达式语言两个部分组成。
JSTL使用手册

JSTL表达式描述9.1 概述在JSP页面中,使用标签库代替传统的Java片段语言来实现页面的显示逻辑已经不是新技术了,然而,由自定义标签很容易造成重复定义和非标准的实现。
鉴于此,出现了JSTL(JSP Standard Tag Library)。
大多数JSP页面逻辑提供了实现的JSTL技术,该技术本身就是一个标签库。
Sun公司Java规范标准的JSTL由apache jakarta组织负责维护。
作为开源的标准技术,它一直在不断地完善。
JSTL的发布包有两个版本:Standard-1.0 Taglib、Standard-1.1 Taglib,它们在使用时是不同的。
8Standard-1.0 Taglib(JSTL1.0)支持Servlet2.3和JSP1.2规范,Web应用服务器Tomcat4支持这些规范,而它的发布也在Tomcat 4.1.24测试通过了。
8Standard-1.1 Taglib(JSTL1.1)支持Servlet2.4和JSP2.0规范,Web应用服务器Tomcat5支持这些规范,它的发布在Tomcat 5.0.3测试通过了。
在本章的介绍中,将以由Sun发布的Standard-1.1 Taglib标签库为主,而apache jakarta组织发布的开源标签库,可以从/taglibs/找到所需要的帮助。
Sun发布的标准JSTL1.1标签库有以下几个标签:8核心标签库:包含Web应用的常见工作,比如:循环、表达式赋值、基本输入输出等。
8国际化标签库:用来格式化显示数据的工作,比如:对不同区域的日期格式化等。
8数据库标签库:可以做访问数据库的工作。
8XML标签库:用来访问XML文件的工作,这是JSTL标签库的一个特点。
8函数标签库:用来读取已经定义的某个函数。
此外,JSTL还提供了EL表达式语言(Expression Language)来进行辅助的工作。
9.2 JSTL EL表达式语言JSTL标签库由标签库和EL表达式语言两个部分组成。
JSTL文档

一、核心标签库 (2)1/1通用标签 (2)1/1/1<c:out>标签 (2)1/1/2<c:set>标签 (3)1/1/3<c:remove>标签 (4)1/1/4<c:catch>标签 (4)1/2条件标签 (5)1/2/1 <c:if> (5)1/2/2<c:choose> <c:when> <c:otherwise> (6)1/3循环迭代标签 (6)1/3/1<c:forEach> (6)1/3/2<c:forTokens>标签 (7)1/4URL相关标签 (8)1/4/1 <c:import> (8)1/4/2 <c:url>标签 (9)1/4/3 <c:param>标签 (10)1/4/4 <c:redirect>标签 (10)二、格式标签库 (11)2/1国际化(I18N)标签 (11)2/1/1 <fmt:setLocale>标签 (11)2/1/2 <fmt:requestEncoding>标签 (11)2/1/3 <fmt:bundle>标签 (12)2/1/4 <fmt:setBundle>标签 (12)2/1/5 <fmt:message>标签 (12)2/2日期处理标签 (12)2/2/1 <fmt:timeZone>标签 (13)2/2/2<fmt:setTimeZone>标签 (13)2/2/3<fmt:formatDate>标签 (13)2/2/4<fmt:parseDate>标签 (14)2/3数字处理标签 (14)2/3/1<fmt:formatNumber>标签 (14)2/3/2<fmt:parseNumber>标签 (15)三、函数标签库 (15)四、SQL标签库 (16)4/0/1<sql:setDataSource> (16)<sql:setDataSource driver="com.mysql.jdbc.Driver" user="root" password="root"url="jdbc:mysql://localhost:3306/ebusi?antoReconnect=true&useUnicode=true&characterEncoding=UTF-8"/> (16)4/0/2 <sql:query> (16)4/0/3<sql:update>标签 (17)4/0/4<sql:param>和<sql:dateParam >标签 (17)4/0/5<sql:transaction>标签 (17)五、XML标签库 (18)一、核心标签库<%@taglib uri="/jsp/jstl/core" prefix="c" %><%String kjk="ui,er,san,si";request.setAttribute("kjk",kjk);%><%String array[]={"00","11","22","33"};request.setAttribute("array",array);%><c:set value="lixiaofeng" var="user" scope="request"></c:set><c:set var="users" scope="request">gggdfd</c:set><c:out value="${er}" escapeXml="true"></c:out> <c:remove var="user" scope="request"/><c:out value="${er}" escapeXml="true"></c:out><c:choose><c:when test=""></c:when><c:otherwise></c:otherwise></c:choose><c:forEach items="${requestScope.array}" var="it"><c:out value="ghg"></c:out></c:forEach><c:forTokens delims="," items="${requestScope.kjk}" var="nn"> <c:out value="${nn}"></c:out></c:forTokens>1/1通用标签1/1/1<c:out>标签<c:out value="<h3>练习1</h3>" escapeXml="false"></c:out><c:out value="<h3>练习2</h3>" escapeXml="true"></c:out><c:out value="<h3>练习3</h3>"></c:out>1/1/2<c:set>标签注:如果target属性存在,则property属性必须存在4种用法:1 <c:set value="lixiaofeng" var="user" scope="request"/>2 <c:set var="user" scope="request">lixiaofeng</c:set>3 <c:set value="lixiaofeng" target="target" property =" propertyName "/>4 <c:set target="target" property =" propertyName ">lixiaofeng</c:set>例子:<%HashMap hm=new HashMap();hm.put("actor1","葛优");hm.put("actress1","林心如");hm.put("actress2","赵薇");request.setAttribute("hm",hm);request.setAttribute("money",new Integer("100"));%><c:set var="money" value="200" scope="page"></c:set><c:out value="${hm.actor1}"/><c:out value="${hm.actress1}"/><c:out value="${hm.actress2}"/><!--为对象添加属性actor2--><c:set target="${hm}" property="actor2">梁朝伟</c:set><!--修改对象的属性actor1的值--><c:set value="郑伊健" target="${hm}" property="actor1"></c:set><c:out value="${hm.actor2}"/><c:out value="${hm.actor1}"/><c:out value="shjsjh"></c:out>1/1/3<c:remove>标签<c:set value="lixiaofeng" var="user" scope="request"></c:set><c:out value="${er}" escapeXml="true"></c:out><c:remove var="user" scope="request"/><c:out value="${er}" escapeXml="true"></c:out>注:<c:set>标签也可以用于删除变量和对象,如:<c:set var=”varName” value=”${expresstion}” scope=”page|request|session|application”/>当value的值表达式微null是,则变量或对象将从指定范围内删除,若不指定范围,将删除所有找到的1/1/4<c:catch>标签<c:catch var="ex1"><%String s1="abc";out.print(s1.length());%></c:catch>无异常:${ex1}<br/><c:catch var="ex2"><% String s2=null;out.print(s2.length());%></c:catch>异常1:${ex2}<br/><c:catch var="ex3"><%int a=0;out.print(8/a);%></c:catch>异常2:${ex3}1/2条件标签//条件标签<c:if> <c:choose> <c:when> <c:otherwise>1/2/1 <c:if><c:if test="${1!=0}"><c:out value="mmm"></c:out></c:if><jsp:useBean id="now" class="java.util.Date" scope="request"></jsp:useBean> ${now.hours}${now.minutes}${now.seconds}<c:if test="${now.hours>=0&&now.hours<12}">上午好</c:if><c:if test="${now.hours>=12&&now.hours<18}">下午好</c:if><c:if test="${now.hours>=18&&now.hours<=23}">晚上好</c:if>1/2/2<c:choose> <c:when> <c:otherwise><c:set var="score" value="${param.score}"></c:set><c:choose><c:when test="${score>0&&score<=60}">成绩很不理想,继续努力</c:when><c:when test="${score>60&&score<=75}">成绩一般,继续努力</c:when><c:when test="${score>75&&score<=90}">成绩不错,继续努力</c:when><c:when test="${score>90&&score<=100}">成绩很好,继续保持</c:when><c:otherwise>成绩输入有误</c:otherwise></c:choose>1/3循环迭代标签//循环迭代标签1/3/1<c:forEach>注:items或者begin和end属性必须指定其一varstatus包括4个状态:index,count,first,last<%HashMap hm=new HashMap();hm.put("age","30");hm.put("height","150");hm.put("sex","female");hm.put("get","5k");request.setAttribute("hm",hm);%><c:forEach var="mm" items="${hm}" varStatus="ss">${mm.key} ${mm.value} ${ss.index} ${ss.first} ${st} ${ss.count}<br/></c:forEach><!--遍历StringTokenizer--><h3>"氮气,氧气,二氧化碳,氢气,硫化氢,一氧化碳,二氧化硫"</h3><c:forEach var="vv" items="氮气,氧气,二氧化碳,氢气,硫化氢,一氧化碳,二氧化硫" begin="2" end="6" varStatus="sy"><c:if test="${sy.first}">begin:${sy.begin}end:${sy.end}${vv}</c:if><c:if test="${st}">总数为:${sy.count}</c:if></c:forEach>1/3/2<c:forTokens>标签注:只能遍历以逗号作为分隔符的StringTokenizer对象,可以同时指定一个或者多个分隔符<%String kjk="ui,er,san,si";request.setAttribute("kjk",kjk);%><c:forTokens delims="," items="${requestScope.kjk}" var="nn"><c:out value="${nn}"></c:out></c:forTokens><c:set value="西瓜,苹果-梨-香蕉,西红柿,芒果-水蜜桃-栗子,菠萝,橙子-樱桃,葡萄-柿子" var="fruits"></c:set><!--以“-”为分隔符--><c:forTokens var="fruit" delims="-" items="${fruits}" varStatus="ss">${ss.count}: ${fruit}<br/></c:forTokens><!--以“,”为分隔符--><c:forTokens var="fruit" delims="," items="${fruits}" varStatus="ss">${ss.count}: ${fruit}<br/></c:forTokens><!--以“,”为分隔符begin为2,end为5--><c:forTokens var="fruit" delims="," items="${fruits}" varStatus="ss" begin="2" end="5"><br/> ${ss.count}: ${fruit}</c:forTokens><!--以“-,”为分隔符--><c:forTokens var="fruit" delims="-," items="${fruits}" varStatus="ss"><br/>${ss.count}: ${fruit}</c:forTokens><!--以“-,”为分隔符begin为2,end为5--><c:forTokens var="fruit" delims="-," items="${fruits}" varStatus="ss" begin="2" end="5"><br/> ${ss.count}: ${fruit}</c:forTokens><!--以“-,”为分隔符--><c:forTokens var="fruit" delims="-," items="${fruits}" varStatus="ss" step="3"><br/> ${ss.count}: ${fruit}</c:forTokens>1/4URL相关标签实现资源导入,格式化URL,参数传递和重定向等,有4个:<c:import> <c:url> <c:param> <c:redirect>1/4/1 <c:import>导入其他服务器资源<c:import url="/" charEncoding="gbk"></c:import>导入本地资源<c:import url="importtest.jsp" context="/webpage" var="vv">${vv}</c:import>需要在tomcat的server.xml的<host>内添加<Content path=”/webpage”docBase=”webpage”debug=”0”reloadable=”true”crossContext=”true”/>1/4/2 <c:url>标签<c:url>的用法:1、<c:url value=”value” [context=”context”]/>2、<c:url value=”value” [context=”context”]><c:param>…..</c:url >3、<c:url value=”value”[context=”context”] var =“varName”[scope=”page|request|session|application”]/>4、<c:url value=”value”[context=”context”] var =“varName”[scope=”page|request|session|application”]><c:param>…..</c:url>输出绝对URL:<c:url value=""></c:url><br/>输出相对URL:<c:url value="/WEB-INF/web.xml" context="/webpage"></c:url><br/>输出带参数的URL:<c:url value="/iftest.jsp"><c:param name="a" value="1"></c:param><c:param name="b" value="2"></c:param></c:url><br/>保存格式化:绝对URL:<c:url var="ftp" value="ftp://61.185.32.191"></c:url><a href="${ftp}">电子图书</a><br/>保存相对地址:<c:url var="testhtml" value="/paratest.html" context="/webpage"></c:url><a href="${testhtml}">web应用</a><br/>保存带参数的URL:<c:url var="testhtml1" value="/paratest.html" context="/webpage"><c:param name="user" value="lixiaofeng"></c:param><c:param name="age" value="21"></c:param></c:url><a href="${testhtml1}">fengfei</a>1/4/3 <c:param>标签注:不能独立使用,只能用于<c:import> <c:url>和<c:redirect>标签体内添加参数1/4/4 <c:redirect>标签并允许使用不同的WEB应用的相对URL<c:redirect url="/servletone" context="/Webpage"><c:param name="color">Red</c:param><c:param name="sex">Female</c:param><c:param name="hob">singsong</c:param></c:redirect>二、格式标签库<%@taglib uri="/jsp/jstl/fmt" prefix="fmt" %>2/1国际化(I18N)标签国际化(又I18N)包括:<fmt:setLocale> <fmt:requestEncoding> <fmt:bundle> <fmt:setBundle> <fmt:message> <fmt:param>2/1/1 <fmt:setLocale>标签2/1/2 <fmt:requestEncoding>标签2/1/3 <fmt:bundle>标签2/1/4 <fmt:setBundle>标签2/1/5 <fmt:message>标签2/2日期处理标签<fmt:formatDate> <fmt:parseDate> <fmt:timeZone> <fmt:setTimeZone>2/2/1 <fmt:timeZone>标签2/2/2<fmt:setTimeZone>标签2/2/3<fmt:formatDate>标签2/2/4<fmt:parseDate>标签2/3数字处理标签<fmt:formatNumber> <fmt:parseNumber>2/3/1<fmt:formatNumber>标签2/3/2<fmt:parseNumber>标签三、函数标签库<%@taglib uri="/jsp/jstl/functions" prefix="fn" %>使用:${fn:函数名(参数列表)}例子:函数表达式:\${fn:contains("dddd","dhkjhj")}结果:${fn:contains("dddd","dhkjhj")}四、SQL标签库<%@taglib uri="/jsp/jstl/sql" prefix="sql" %>4/0/1<sql:setDataSource><sql:setDataSource driver="com.mysql.jdbc.Driver" user="root" password="root" url="jdbc:mysql://localhost:3306/ebusi?antoReconnect=true&useUnicode=true&charact erEncoding=UTF-8"/>4/0/2 <sql:query><sql:setDataSource driver="com.mysql.jdbc.Driver" var="ds" user="root" password="root" url="jdbc:mysql://localhost:3306/ebusi?antoReconnect=true&useUnicode=true&charact erEncoding=UTF-8"/><sql:query var="result" dataSource="${ds}" sql="select * from table_admin" ><c:forEach var="row" items="${result.rows}">${row.admin_login_name}</c:forEach></sql:query>4/0/3<sql:update>标签<sql:update dataSource="${ds}">insert into table_user_base values(1022,'dddd','123456',0.0,0,0)</sql:update>4/0/4<sql:param>和<sql:dateParam >标签若<sql:query>和<sql:update>标签中使用了带参数的SQL语句(参数用?表示),则需要<sql:update dataSource="${ds}">update table_user_base set user_base_name=? where id=1001<sql:param value="kjl"></sql:param></sql:update>4/0/5<sql:transaction>标签五、XML标签库<%@taglib uri="/jsp/jstl/xml" prefix="x" %>JSTL的XML标签库提供了解析XML文档。
锐捷基础配置命令参考手册

RGNOS™命令参考手册基础配置目录第一章用户界面命令 (1)1.1 基本用户界面相关命令 (1)1.1.1 configure terminal (1)1.1.2 control e1 (2)1.1.3 dialer-peer (2)1.1.4 disable (2)1.1.5 enable (3)1.1.6 end (3)1.1.7 exit (4)1.1.8 help (4)1.1.9 interface (5)1.1.10 line (5)1.1.11 router-map (6)1.1.12 setup (6)1.1.13 show histroy (8)1.1.14 voice-port (8)1.1.15 voice service voip (8)第二章系统管理命令 (9)2.1 基本系统管理相关命令 (9)2.1.1 calendar set (9)2.1.2 clock set (9)2.1.3 copy (10)2.1.4 hostname (11)2.1.5 show clock (11)2.1.6 show running-config (12)2.1.7 show startup-config (12)2.1.8 reload (12)2.1.9 write (13)2.2 文件系统操作命令 (14)2.2.1 dir (14)2.2.2 delete (15)2.2.3 rename (15)2.2.4 squeeze (16)2.2.5 format (17)第三章升级与维护相关命令 (19)3.1 升级和维护相关命令 (19)3.1.1 copy tftp flash (19)3.1.2 copy tftp update (20)3.1.3 ROM模式下升级 (21)第四章SNTP配置命令 (22)4.1 SNTP配置相关命令 (22)4.1.1 sntp enable (22)4.1.2 sntp interval (22)4.1.3 sntp server (23)4.1.4 show sntp (24)第五章SNMP配置命令 (25)5.1 SNMP配置相关命令 (25)5.1.1 no snmp-server (25)5.1.2 show snmp (26)5.1.3 snmp-server chassis-id (26)5.1.4 snmp-server community (27)5.1.5 snmp-server contact (28)5.1.6 snmp-server enable traps (28)5.1.7 snmp-server host (29)5.1.8 snmp-server location (30)5.1.9 snmp-server packetsize (30)5.1.10 snmp-server queue-length (31)5.1.11 snmp-server system-shutdown (32)5.1.12 snmp-server trap-source (32)5.1.13 snmp-server trap-timeout (33)第六章调试工具命令 (34)6.1 调试工具相关命令 (34)6.1.1 debug (34)6.1.2 ping (36)6.1.3 show (37)6.1.4 service tcp-keepalives-in (38)6.1.5 service tcp-keepalives-out (39)第七章系统日志命令 (41)7.1 系统日志相关命令 (41)7.1.1 logging on (41)7.1.2 terminal monitor (42)7.1.3 logging buffered (42)7.1.4 logging (44)7.1.5 logging file flash (44)7.1.6 service sequence-numbers (45)7.1.7 service timestamps (46)7.1.8 logging console (47)7.1.9 logging monitor (48)7.1.10 logging trap (49)7.1.11 logging language (49)7.1.12 logging source-interface (50)7.1.13 logging facility (51)7.1.14 show logging (52)7.1.15 more flash (54)7.1.16 clear logging (55)第一章 用户界面命令1.1 基本用户界面相关命令用户界面即为用户命令行接口(CLI)包括以下相关命令:z configure terminalz control e1z disablez dialer-peerz enablez endz exitz helpz historyz interfacez linez router-mapz setupz show histroyz voice-portz voice service voip1.1.1 configure terminal要从特权用户模式进入全局配置模式,请执行特权用户命令configure terminal。
JSTL标签 参考手册

JSTL标签参考手册前言=====================================================================JSLT标签库,是日常开发经常使用的,也是众多标签中性能最好的。
把常用的内容,放在这里备份一份,随用随查。
尽量做到不用查,就可以随手就可以写出来。
这算是Java程序员的基本功吧,一定要扎实。
JSTL全名为JavaServer Pages Standard Tag Library,目前最新的版本为1.1版。
JSTL是由JCP(Java Community Process)所制定的标准规范,它主要提供给Java Web开发人员一个标准通用的标签函数库。
Web程序员能够利用JSTL和EL来开发Web程序,取代传统直接在页面上嵌入Java 程序(Scripting)的做法,以提高程序的阅读性、维护性和方便性。
JSTL 1.1必须在支持Servlet 2.4且JSP 2.0以上版本的Container才可使用<%@ taglib %>引入标签库=====================================================================1、以classPath中,加入jar包: standard-1.1.2.jar , jstl-1.1.2.jar2、在相目\WEB-INF\tld\文件夹中放入常用的tld文件:c.tld,fmt.tld3、在jsp文件的顶部加入以下内容:Java代码1.<%@ taglib uri="/jsp/jstl/core" prefix="c" %>2.<%@ taglib uri="/jsp/jstl/fmt" prefix="fmt"%>3.<%@ taglib uri="/jsp/jstl/functions"prefix="fn" %><c:>核心标签库=====================================================================JSTL 核心标签库(C标签)标签共有13个,功能上分为4类:1.表达式控制标签:out、set、remove、catch2.流程控制标签:if、choose、when、otherwise3.循环标签:forEach、forTokens4.URL操作标签:import、url、redirect<c:forEach>标签------------------------------------------------------------------- 为循环控制,它可以将集合(Collection)中的成员循序浏览一遍。
JSTL详解
7第七章JSTL 1.1 JSTL全名为JavaServer Pages Standard Tag Library,目前最新的版本为1.1版。
JSTL是由JCP(Java Community Process)所制定的标准规范,它主要提供给Java Web开发人员一个标准通用的标签函数库。
Web程序员能够利用JSTL和EL来开发Web程序,取代传统直接在页面上嵌入Java程序(Scripting)的做法,以提高程序的阅读性、维护性和方便性。
本章中,笔者将详细介绍如何使用JSTL中各种不同的标签,将依序介绍条件、循环、URL、U18N、XML、SQL等标签的用法,让读者对JSTL有更深层的了解,并且能够学会如何使用JSTL。
本章将分6节来介绍:7-1 JSTL 1.1简介7-2 核心标签库 (Core tag library)7-3 I18N格式标签库 (I18N-capable formatting tags library)7-4 SQL标签库 (SQL tag library)7-5 XML标签库 (XML tag library)7-6 函数标签库 (Functions tag library)JSP2.0技术手册第七章 JSTL 1.1126JSP2.0技术手册7-1 JSTL 1.1简介JavaServer Pages Standard Tag Library (1.1 ),它的中文名称为JSP 标准标签函数库。
JSTL 是一个标准的已制定好的标签库,可以应用于各种领域,如:基本输入输出、流程控制、循环、XML 文件剖析、数据库查询及国际化和文字格式标准化的应用等。
从表7-1可以知道,JSTL 所提供的标签函数库主要分为五大类:(1) 核心标签库 (Core tag library)(2) I18N 格式标签库 (I18N-capable formatting tag library) (3) SQL 标签库 (SQL tag library) (4) XML 标签库 (XML tag library) (5) 函数标签库 (Functions tag library)表7-1JSTL前置名称URI范 例 核心标签库 c /jsp/jstl/core <c:out> I18N 格式标签库 fmt /jsp/jstl/xml <fmt:formatDate> SQL 标签库 sql /jsp/jstl/sql <sql:query> XML 标签库 xml /jsp/jstl/fmt <x:forBach> 函数标签库fn/jsp/jstl/functions<fn:split>另外,JSTL 也支持EL(Expression Language)语法,例如:在一个标准的JSP 页面中可能会使用到如下的写法:<%= userList.getUser().getPhoneNumber() %>使用JSTL 搭配传统写法会变成这样: <c_rt:out value="<%= userList.getUser( ).getPhoneNumber( ) %>" />使用JSTL 搭配EL ,则可以改写成如下的形式:<c:out value="${er.phoneNumber}" />虽然对网页设计者来说,假如没有学过Java Script 或者是第一次看到这种写法时,可能会搞不太懂,但是与Java 语法相比,这应该更加容易学习。
JSTL用户开发手册
中国软件与技术服务股份有限公司JSTL用户开发手册中国软件与技术服务股份有限公司应用产品研发中心目录1.JSP核心标签库 (1)2.表达式操作 (1)2.1.<c:out> (1)2.2.<c:set> (2)2.3.<c:remove> (3)2.4.<c:catch> (3)3.流程控制 (6)3.1.<c:if> (6)3.2.<c:choose> (7)3.3.<c:when> (8)3.4.<c:otherwise> (8)4.迭代操作 (9)4.1.<c:forEach> (9)4.2.<c:forTokens> (14)5.URL操作 (16)5.1.<c:import> (16)5.2.<c:url> (17)5.3.<c:redirect> (19)1.JSP核心标签库JSTL全名JavaServer Pages Standard Tag Library,它主要提供给Java Web开发人员一个标准通用的标签函数库。
下面只介绍我们工作中常用到的标签,有兴趣请参考VSS上,jstl1.1使用说明.pdf文件。
为了维持方便,所以大家在以后的页面开发中尽量不要嵌套JSP语法,例如:<%=new Date() %>核心标签库(core)主要有:基本输入输出、流程控制、迭代操作和URL操作。
因平台已经把标签库引入,所以这里就不再说明,接下来一一介绍每个标签的功能。
2.表达式操作表达式操作分类中包含四个标签:<c:out>、<c:set>、<c:remove>和<c:catch>.下面将依序介绍2.1. <c:out>作用:<c:out>主要用来显示数据的内容,就像<%=abcdefg%>一样,<c:out>是在我们以后页面开发中使用最多的表达式。
JSTL详解
java逻辑代码,同时也由于自定义标签的开发难度较大和不利于技术标准化产生了自定义标签库。
JSTL标签库可分为5类:∙核心标签库∙I18N格式化标签库∙SQL标签库∙XML标签库∙函数标签库八、JSTL 表达式在页面的配置。
1、导入standard.jar和jstl.jar。
2、在JSP页面上引入 JSTL 的引用。
如:Java代码1.<%@ taglib uri="/jsp/jstl/core" prefix="c" %>九、JSTL 的使用。
1、核心标签库JSTL的核心标签库标签共13个,从功能上可以分为4类:表达式控制标签、流程控制标签、循环标签、URL操作标签。
使用这些标签能够完成JSP页面的基本功能,减少编码工作。
如:∙表达式控制标签:out标签、set标签、remove标签、catch标签。
∙流程控制标签:if标签、choose标签、when标签、otherwise标签。
∙循环标签:forEach标签、forTokens标签。
∙URL操作标签:import标签、url标签、redirect标签。
下面,演示各个标签的使用。
1.1、表达式控制标签。
(1)、<c:out>标签:用来显示数据对象(字符串、表达式)的内容或结果。
相当于<% out.println(“字符串”)%> 或 <%=表达式%>。
语法如下:∙【语法1】:<c:out value=”要显示的数据对象” [escapeXml=”true|false”] [default=”默认值”]>∙【语法2】:<c:out value=”要显示的数据对象” [escapeXml=”true|false”]>默认值</c:out>∙【语法1】:Java代码Java代码Java代码Java代码提示:从功能上分语法1和语法2、语法3和语法4的效果是一样的只是把value值放置的位置不同至于使用那个根据个人的喜爱,语法1和语法2是向scope范围内存储一个值,语法3和语法4是给指定的JavaBean赋值。
jslt c标签库手册
前言从JSP 1.1规范开始,JSP 就支持在JSP 中使用自定义标签了,自定义标签的广泛使用造成了程序员重复定义,这样就促成了JSTL (JavaServer Pages Standard Tag Library )的诞生。
作者:丁令(http:////)JSTL 简介JSTL 是一个不断完善的开放源代码的JSP 标签库,是由apache 的jakarta 小组来维护的。
JSTL 只能运行在支持JSP1.2和Servlet2.3规范的容器上,如tomcat 4.x 。
但是在即将推出的JSP 2.0中是作为标准支持的。
JSTL 目前的最新版本为1.02,最终发布版为1.0。
JSTL 包含两个部分:标签库和EL (Expression Language 表达式语言)语言。
标签库目前支持四种标签:标签URI前缀示例Core/jstl/core c <c:tagname ...>XML processing/jstl/xml x<x:tagname ...>I18N capable formatting /jstl/fmt fmt <fmt:tagname ...>Database access (SQL)/jstl/sqlsql<sql:tagname ...>Core 支持JSP 中的一些基本的操作;XML processing 支持XML 文档的处理;I18N capable formatting 支持对JSP 页面的国际化;JSTL 标签库详细介绍资料收藏首页资讯空间学生论坛博客下载读书网摘程序员外包书店网址CT O俱乐部乐知教育D9区阿铮的箩筐箩筐里面水汪汪登录注册博客首页全站搜索留言用户操作[留言] [发消息] [加为好友]阿铮ID :azheng270共43505次访问,排名3671,好友7人,关注者26人。
哪里有自由,哪里就是我的国家阿铮的文章原创 36 篇翻译 1 篇转载 32 篇评论 32 篇订阅我的博客Database access (SQL)支持JSP对数据库的操作。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
JSP 标准标记库(JSP Standard Tag Library,JSTL)是一个实现Web 应用程序中常见的通用功能的定制标记库集,这些功能包括迭代和条件判断、数据管理格式化、XML 操作以及数据库访问。
在developerworks 上其新系列的第一篇文章中,软件工程师Mark Kolb 向您展示了如何使用JSTL 标记来避免在JSP 页面中使用脚本编制元素。
您还将了解如何通过从表示层删除源代码来简化软件维护。
最后,您将了解JSTL 经过简化的表达式语言,它允许在不必使用功能齐全的编程语言的情况下对JSTL 操作指定动态属性值。
JavaServer Pages(JSP)是用于J2EE 平台的标准表示层技术。
JSP 技术提供了用于执行计算(这些计算用来动态地生成页面内容)的脚本编制元素和操作。
脚本编制元素允许在JSP 页面中包括程序源代码,在为响应用户请求而呈现页面时可以执行这些源代码。
操作将计算操作封装到很象HTML 或XML 标记的标记中,JSP 页面的模板文本通常包含这些标记。
JSP 规范只将几种操作定义成了标准,但从JSP 1.1 开始,开发人员已经能够以定制标记库的方式创建其自己的操作了。
JSP 标准标记库(JSTL)是JSP 1.2 定制标记库集,这些标记库实现大量服务器端Java 应用程序常用的基本功能。
通过为典型表示层任务(如数据格式化和迭代或条件内容)提供标准实现,JSTL 使JSP 作者可以专注于特定于应用程序的开发需求,而不是为这些通用操作“另起炉灶”。
当然,您可以使用JSP 脚本编制元素(scriptlet、表达式和声明)来实现此类任务。
例如,可以使用三个scriptlet 实现条件内容,清单 1 中着重显示了这三个scriptlet。
但是,因为脚本编制元素依赖于在页面中嵌入程序源代码(通常是Java 代码),所以对于使用这些脚本编制元素的JSP 页面,其软件维护任务的复杂度大大增加了。
例如,清单 1 中的scriptlet 示例严格地依赖于花括号的正确匹配。
如果不经意间引入了一个语法错误,则条件内容中的嵌套其它scriptlet 可能会造成严重破坏,并且在JSP 容器编译该页面时,要使所产生的错误信息有意义可能会很困难。
修正此类问题通常需要相当丰富的编程经验。
尽管通常会由十分精通页面布局和图形设计的设计人员来开发和维护JSP,但是同一页面中的脚本编制元素出现问题时,需要程序员的介入。
这种状况将单个文件中代码的责任分担给多人,因而使得开发、调试和增强此类JSP 页面成为很麻烦的任务。
通过将常用功能包装到定制标记库的标准集合中,JSTL 使JSP 作者可以减少对编制脚本元素的需求,甚至可以不需要它们,并避免了相关的维护成本。
JSTL 1.0JSTL 1.0 发布于2002 年6 月,由四个定制标记库(core、format、xml 和sql)和一对通用标记库验证器(ScriptFreeTLV 和PermittedTaglibsTLV)组成。
core 标记库提供了定制操作,通过限制了作用域的变量管理数据,以及执行页面内容的迭代和条件操作。
它还提供了用来生成和操作URL 的标记。
顾名思义,format 标记库定义了用来格式化数据(尤其是数字和日期)的操作。
它还支持使用本地化资源束进行JSP 页面的国际化。
xml 库包含一些标记,这些标记用来操作通过XML 表示的数据,而sql 库定义了用来查询关系数据库的操作。
两个JSTL 标记库验证器允许开发人员在其JSP 应用程序中强制使用编码标准。
可以配置ScriptFreeTLV 验证器以在JSP 页面中禁用各种类型的JSP 脚本元素― scriptlet、表达式和声明。
类似地,PermittedTaglibsTLV 验证器可以用来限制可能由应用程序的JSP 页面访问的定制标记库集(包括JSTL 标记库)。
表达式语言在JSP 1.2 中,可以使用静态字符串或表达式(如果允许的话)指定JSP 操作的属性。
例如,在清单 2 中,对<jsp:setProperty> 操作的name和property 属性指定了静态值,而用表达式指定了其value 属性。
这个操作的效果是将请求参数的当前值赋予命名的bean 特性。
以这种形式使用的表达式被称为请求时属性值(request-time attribute value),这是构建到JSP 规范中的用于动态指定属性值的唯一机制。
清单 2. 合并请求时属性值的JSP 操作因为请求时属性值是用表达式指定的,所以它们往往有和其它脚本元素一样的软件维护问题。
因此,JSTL 定制标记支持另一种用于指定动态属性值的机制。
可以用简化的表达式语言(EL)而不使用完整的JSP 表达式来指定JSTL 操作的属性值。
EL 提供了一些标识符、存取器和运算符,用来检索和操作驻留在JSP 容器中的数据。
EL 在某种程度上以EcmaScript(请参阅参考资料)和XML 路径语言(XML Path Language,XPath)为基础,因此页面设计人员和程序员都应该熟悉它的语法。
EL 擅长寻找对象及其特性,然后对它们执行简单操作;它不是编程语言,甚至不是脚本编制语言。
但是,与JSTL 标记一起使用时,它就能使用简单而又方便的符号来表示复杂的行为。
EL 表达式的格式是这样的:用美元符号($)定界,内容包括在花括号({})中,如清单 3 所示。
清单 3. 说明EL 表达式定界符的JSTL 操作此外,您可以将多个表达式与静态文本组合在一起以通过字符串并置来构造动态属性值,如清单 4 所示。
单独的表达式由标识符、存取器、文字和运算符组成。
标识符用来引用存储在数据中心中的数据对象。
EL 有11 个保留标识符,对应于11 个EL 隐式对象。
假定所有其它标识符都引用限制了作用域的变量。
存取器用来检索对象的特性或集合的元素。
文字表示固定的值― 数字、字符、字符串、布尔型或空值。
运算符允许对数据和文字进行组合以及比较。
清单 4. 组合静态文本和多个EL 表达式以指定动态属性值限制了作用域的变量JSP API 通过<jsp:useBean> 操作允许从JSP 容器内的四个不同作用域中存储和检索数据。
JSTL 通过提供用于指定和除去这些作用域中的对象的附加操作来扩展这一能力。
此外,EL 提供将这些对象作为限制了作用域的变量进行检索的内置支持。
特别地,任何出现在EL 表达式中但不对应于任何EL 隐式对象的标识符,都被自动假定为引用存储在四个JSP 作用域的其中某个中的对象,这四个作用域是:∙页面作用域∙请求作用域∙会话作用域∙应用程序作用域您可能还记得,只有在为特定请求处理页面期间才能检索存储在该页面作用域中的对象。
如果对象是存储在请求作用域中的,可以在处理所有参与处理某请求的页面期间检索这些对象(譬如在对某个请求的处理中遇到了一个或多个<jsp:include> 或<jsp:forward> 操作)。
如果对象是存储在会话作用域中的,则在与Web 应用程序的交互式会话期间,可以由用户访问的任何页面检索它(即,直到与该用户交互相关联的HttpSession 对象无效为止)。
可以由任何用户从任何页面访问存储在应用程序作用域中的对象,直到卸载Web 应用程序本身为止(通常是由于关闭JSP 容器所致)。
通过将字符串映射为期望作用域中的对象来将对象存储到该作用域。
然后,就可以通过提供相同字符串来从该作用域检索该对象。
在作用域的映射中查找字符串,并返回被映射的对象。
在Servlet API 中,将此类对象称为相应作用域的属性。
但是,在EL 的上下文中,也将与属性相关联的字符串看作变量的名称,该变量通过属性映射的方式获得特定的值。
在EL 中,与隐式对象无关联的标识符被认为是存储在四个JSP 作用域中的名称对象。
首先对页面作用域检查是否存在这样的标识符,其次对请求作用域、然后对会话作用域、最后对应用程序作用域依次进行这样的检查,然后测试该标识符的名称是否与存储在该作用域中的某个对象的名称匹配。
第一个这样的匹配作为EL 标识符的值被返回。
通过这种方法,可以将EL 标识符看作引用限制了作用域的变量。
从更技术的方面来说,没有映射到隐式对象的标识符是用PageContext 实例的findAttribute() 方法求值的,该实例表示对页面的处理,在该页面上,当前正在处理用于请求的表达式。
标识符的名称作为参数传递给这个方法,然后该方法依次在四个作用域中搜索具有相同名称的属性。
并将所找到的第一个匹配项作为findAttribute() 方法的值返回。
如果未在这四个作用域中找到这样的属性,则返回null。
最终,限制了作用域的变量是四个JSP 作用域的属性,这些属性具有可以用作EL 标识符的名称。
只要对限制了作用域的变量赋予由字母数字组成的名称,就可以通过JSP 中提供的用于设置属性的任何机制来创建它们。
这包括内置的<jsp:useBean> 操作,以及由Servlet API 中的几个类定义的setAttribute() 方法。
此外,四个JSTL 库中定义的许多定制标记本身就能够设置作为限制了作用域的变量使用的属性值。
隐式对象表 1 中列出了11 个EL 隐式对象的标识符。
不要将这些对象与JSP 隐式对象(一共只有九个)混淆,其中只有一个对象是它们所共有的。
表 1. EL 隐式对象尽管JSP 和EL 隐式对象中只有一个公共对象(pageContext),但通过EL 也可以访问其它JSP 隐式对象。
原因是pageContext 拥有访问所有其它八个JSP 隐式对象的特性。
实际上,这是将它包括在EL 隐式对象中的主要理由。
其余所有EL 隐式对象都是映射,可以用来查找对应于名称的对象。
前四个映射表示先前讨论的各种属性作用域。
可以用它们来查找特定作用域中的标识符,而不用依赖于EL 在缺省情况下使用的顺序查找过程。
接下来的四个映射用来获取请求参数和请求头的值。
因为HTTP 协议允许请求参数和请求头具有多个值,所以它们各有一对映射。
每对中的第一个映射返回请求参数或头的主要值,通常是恰巧在实际请求中首先指定的那个值。
每对中第二个映射允许检索参数或头的所有值。
这些映射中的键是参数或头的名称,但这些值是String对象的数组,其中的每个元素都是单一参数值或头值。
cookie 隐式对象提供了对由请求设置的cookie 名称的访问。
这个对象将所有与请求相关联的cookie 名称映射到表示那些cookie 特性的Cookie对象。
最后一个EL 隐式对象initParam 是一个映射,它储存与Web 应用程序相关联的所有上下文的初始化参数的名称和值。