JSTL标签库 讲师:梁 桐 北京传智播客教育 www.itcast.cn 1。缓存数据 2。处理字符乱码 3。监听器中的定时器 4。权限检查标签 讲师:梁 桐 北京传智播客教育 www.itcast.cn
Tip: JSTL 简介 JavaServer Pages Standard Tag Library 由JCP(Java Community Process)指定标准 提供给 Java Web 开发人员一个标准通用的标签函数库 和 EL 来取代传统直接在页面上嵌入 Java 程序(Scripting)的做法,以提高程序可读性、维护性和方便性 北京传智播客教育 www.itcast.cn
Tip: JSTL1.1安装 下载 安装 JSTL 主要由Apache组织的Jakarta Project 实现 http://tomcat.apache.org/taglibs/standard/ 容器必须支持Servlet 2.4 且JSP 2.0 以上版本 安装 解压缩后将lib 中的jstl.jar、standard.jar 复制到WEB应用程序的WEB-INF\lib 下 北京传智播客教育 www.itcast.cn
Tip:JSTL标签库 核心标签库 (Core tag library) 国际化标签 (I18N—capable formatting tag library) 数据库标签(SQL tag library) XML标签(XML tag library) JSTL函数标签(Functions tag library)--EL函数 北京传智播客教育 www.itcast.cn
Tip:JSTL标签库 JSTL 前缀名称 URI 范例 核心标签库 c 国际化标签 fmt 数据库标签 sql XML标签 x 函数标签 http://java.sun.com/jsp/jstl/core <c:out> 国际化标签 fmt http://java.sun.com/jsp/jstl/fmt <fmt:formatDate> 数据库标签 sql http://java.sun.com/jsp/jstl/sql <sql:query> XML标签 x http://java.sun.com/jsp/jstl/xml <x:forEach> 函数标签 fn http://java.sun.com/jsp/jstl/functions ${fn:indexOf(name, "-")} 北京传智播客教育 www.itcast.cn
Tip:<c:out>标签 <c:out> 用来显示数据的内容 格式: 与<%=scripting-language%> 输出文本内容到pageContext对象当前保存的“out”对象中。 格式: <c:out value=“value” [excapeXml=“true|false”]> [default value] </c:out> 属性名 是否支持EL 属性类型 属 性 描 述 Value true Object 指定要输出的内容 escapeXml Boolean 指定是否将>、<、&、'、" 等特殊字符进行HTML编码转换后再进行输出。默认值为true default 指定如果value属性的值为null时所输出的默认值 北京传智播客教育 www.itcast.cn
Tip:<c:set>标签 <c:set>用来将变量储存至JSP范围中或JavaBean的属性中 格式1:<c:set value=“value” var=“varName” [scope=“page|request|”] /> 格式2:<c:set target=“varName” property=“name” [scope=“session|application”] /> 属性名 是否支持EL 属性类型 属 性 描 述 value true Object 用于指定属性值,value为null则移除 var false String 用于指定要设置的Web域属性的名称 scope 用于指定属性所在的Web域 target 用于指定要设置属性的对象,这个对象必须是JavaBean对象或java.util.Map对象 property string 用于指定当前要为对象设置的属性名称 北京传智播客教育 www.itcast.cn
Tip:<c:remove>标签 <c:remove>标签用于删除各种Web域中的属性。 其语法格式如下: <c:remove var="varName" [scope="{page|request|session|application}"] /> 北京传智播客教育 www.itcast.cn
Tip:<c:catch>标签 <c:catch>标签用于捕获嵌套在标签体中的内容抛出的异常,其语法格式如下:<c:catch [var="varName"]>nested actions</c:catch> var属性用于标识<c:catch>标签捕获的异常对象,它将保存在page这个Web域中。 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ page contentType="text/html;charset=gb2312" %> <c:catch var="myex“ > <% 10/0; %> </c:catch> 异常:<c:out value="${myex}" /> ${myex}<br /> 异常 myex.getMessage:<c:out value="${myex.message}" /><br /> 异常 myex.getCause:<c:out value="${myex.cause}" /><br /> 异常 myex.getStackTrace:<c:out value="${myex.stackTrace}" /> 北京传智播客教育 www.itcast.cn
Tip:<c:if>标签 <c:if test=“”>标签可以构造简单的“if-then”结构的条件表达式 属性名 是否支持EL 属性类型 属 性 描 述 test true boolean 决定是否处理标签体中的内容的条件表达式 var false String 用于指定将test属性的执行结果保存到某个Web域中的某个属性的名称 scope 指定将test属性的执行结果保存到哪个Web域中 北京传智播客教育 www.itcast.cn
Tip:<c:choose>标签 <c:choose>标签用于指定多个条件选择的组合边界,它必须与<c:when>和<c:otherwise>标签一起使用。使用<c:choose>,<c:when>和<c:otherwise>三个标签,可以构造类似 “if-else if-else” 的复杂条件判断结构。 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ page contentType="text/html;charset=gb2312" %> <c:set value="${param.count}" var="count“ /> pageContext(count,2) <c:choose> <c:when test="${count == 0}"> 对不起,没有符合您要求的记录。 </c:when> <c:otherwise> 符合您要求的记录共有${count}条. </c:otherwise> </c:choose> 北京传智播客教育 www.itcast.cn
Tip:<c:forEach>标签 属性名 是否支持EL 属性类型 属 性 描 述 var false String 指定将当前迭代到的元素保存到page这个Web域中的属性名称 varstatus 记住用于保存迭代信息的对象 items true 任何支持的类型 将要迭代的集合对象,或数组 begin int 如果指定items属性,就从集合中的第begin个元素开始进行迭代,begin的索引值从0开始编号;如果没有指定items属性,就从begin指定的值开始迭代,直到end值时结束迭代 end 参看begin属性的描述 step 指定迭代的步长,即迭代因子的迭代增量 北京传智播客教育 www.itcast.cn
<c:forEach> 语法1: <c:forEach [var="varName"] items="collection" [varStatus="varStatusName"] [begin="begin"] [end="end"] [step="step"]> //Body内容 </c:forEach> 北京传智播客教育 www.itcast.cn
<c:forEach>范例 <% int atts[] = {1,2,3,4,5,6,7,8,9,10}; request.setAttribute("atts", atts); %> <c:forEach items="${atts}" var="item" begin="0" end="9" step="1" > ${item}</br> </c:forEach> 北京传智播客教育 www.itcast.cn
<c:forEach> 语法2: <c:forEach [var="varName"] [varStatus="varStatusName"] begin="begin" end="end" [step="step"]> //Body内容 </c:forEach> <c:forEach begin="1" end="10" var="item" > ${item}</br> 北京传智播客教育 www.itcast.cn
varStatus属性 用来存放现在指到之成员的相关信息 北京传智播客教育 www.itcast.cn <c:forEach var="i" begin="100" end="200" step="5" varStatus="status"> <c:if test="${status.first}"> begin:<c:out value="${status.begin}">begin</c:out> end:<c:out value="${status.end}">end</c:out> step:<c:out value="${status.step}">step</c:out> <br/> sequence: </c:if> <c:out value="${i}"/> <c:if test="${status.last}"> <br/>There are <c:out value="${status.count}"/> numbers in the list. </c:forEach> ---------------------------------------------------------------------------------------------- <% Map<String,String> map = new HashMap<String,String>(); map.put("001","aaa"); map.put("002","bbb"); map.put("003","ccc"); request.setAttribute("map",map); %> <c:forEach var="m" items="${requestScope.map}"> ${m.key } , ${m.value } <br/> 北京传智播客教育 www.itcast.cn
Tip: <c:forTokens> 用来浏览一字符串中所有的成员,其成员是由定义符号所分隔的 北京传智播客教育 www.itcast.cn
<c:forTokens> <c:forTokens items="stringOfTokens" delims="delimiters" [var="varName"] [varStatus="varStatusName"] [begin="begin"] [end="end"] [step="step"]> //body内容 </c:forTokens> <c:forTokens items="A,B,C,D,E" delims="," var="item" > ${item} </c:forTokens> 北京传智播客教育 www.itcast.cn
Tip:<c:param>标签 在JSP页面进行URL的相关操作时,经常要在URL地址后面附加一些参数。<c:param>标签可以嵌套在<c:import>、<c:url>或<c:redirect>标签内,为这些标签所使用的URL地址附加参数。 <c:param>标签在为一个URL地址附加参数时,将自动对参数值进行URL编码,例如,如果传递的参数值为“中国”,则将其转换为“%d6%d0%b9%fa”后再附加到URL地址后面,这也就是使用<c:param>标签的最大好处。 示例:<c:param name="name" value="value" /> 北京传智播客教育 www.itcast.cn
Tip: <c:import> 标签 <c:import url="http://java.sun.com" /> <c:import url="ftp://ftp.cse.yzu.edu.tw/data.txt" /> <c:import url="/images/hello.txt" var="s" scope="session" /> <c:import url="http://java.sun.com" > <c:param name="test" value="1234" /> </c:import> 北京传智播客教育 www.itcast.cn
Tip:<c:url>标签 <c:url>标签用于在JSP页面中构造一个URL地址,其主要目的是实现URL重写。URL重写就是将会话标识号以参数形式附加在URL地址后面 属性名 是否支持EL 属性类型 属 性 描 述 value true String 指定要构造的URL var false 指定将构造出的URL结果保存到Web域中的属性名称 scope 指定将构造出的URL结果保存到哪个Web域中 北京传智播客教育 www.itcast.cn
Tip:<c:redirect>标签 属性名 是否支持EL 属性类型 属 性 描 述 url true String 指定要转发或重定向到的目标资源的URL地址 context 当要使用相对路径重定向到同一个服务器下的其他WEB应用程序中的资源时,context属性指定其他WEB应用程序的名称 北京传智播客教育 www.itcast.cn
Tip:国际化标签 详情国际化编程时介绍 北京传智播客教育 www.itcast.cn