JSTL标准标签库
JAVA多媒体05_JSTL标准标签库
JSTL访问JSP属性
• EL表达式使用${variable}代表一个指定 名称数据对象 • 使用”.”或”[]”来访问数据对象的属性
表达式语言命令
操作符 + * /或div %或mod ==或<EQ != <或lt 解释 加法 减法 乘法 除法 取模 相等 不等 小于 操作符 >或gt <=或lc >=或gc &&或and ||或or !或not empty 解释 大于
JSTL部署
<taglib-uri> /jstl/core /jstl/core-rt /jstl/sql /jstl/sql-rt /jstl/fmt /jstl/fmt-rt /jstl/x /jstl/x-rt <taglib-location> /WEB-INF/c.tld /WEB-INF/c-rt.tld /WEB-INF/sql.tld /WEB-INF/sql-rt.tld /WEB-INF/fmt.tld /WEB-INF/fmt-rt.tld /WEB-INF/x.tld /WEB-INF/x-rt.tld
小于或等于 大于或等于
逻辑与 逻辑或 逻辑非 是否为空
核心标记
• • • • 支持表达式语言的标记 流程控制标记 循环标记 URL标记
支持表达式语言的标记
• • • • <c:out>:jspWriter输出,等同<%=…%> <c:set>:设置隐含对象的属性值 <c:remove> <c:remove>:删除一个范围的属性 <c:catch>:控制JSP中的错误信息
JSTL标准标签库
JSTL简介
JAVA-WEB开发教程-第九章-JSTL基础知识
9.5.2 <x:out>标签
• 使用<x:parse>把一个XML文档解析以后,就可以 使用<x:out>标签输出XML节点的值,<x:out>在这 里的功能和<c:out>有点类似。<x:out>标签的使 用语法如下。<x:out select=”node” [escapeXML=”{true|false}”]/>
第17页,共37页。
9.4.1 <sql:setDataSource>标签
• <sql:setDataSource>标签可以用来设置数据源, 其使用语法有两种,第一中语法如下。
• <sql:setDataSource driver="driverName" url="URL" [user="userName"] [password="password"] [var=”varName”] [scope="{page|request|session|application}" />
• default value
• </c:out>
第5页,共37页。
9.3.2 <c:set>标签
• <c:set>的主要功能是把变量的值设置到JSP内置 对象中,或者是设置到JavaBean的属性中。 <c:set>的功能和JSP动作指令中的 <jsp:setProperty>类似。(具体内容请参照书。)
第2页,共37页。
9.2 JSTL开发环境简单配置
• 如果要在项目中使用JSTL,就需要在配置JSTL的 环境,JSTL环境配置非常简单,首先要下载JSTL, (具体内容请参照书。)
JSP标准标签库(JSTL)精品PPT课件
JSTL的目的是简化JSP页面的设计。为页面设计人员和程 序开发人员的分工协作提供了便利。
JSTL1.0需要支持Servlet2.3和JSP1.2的Web容器,而 JSTL1.1需要支持Servlet2.4和JSP2.0的Web容器。
<c:set>
用于设置范围变量的值或JavaBean对象的属性。
语法1:使用value属性设置范围变量的值 <c:set value=“value” var=“varname” [scope=“{page|request|session|application}”] />
语法2:使用标签体设置范围变量的值 <c:set var=“varName” [scope=“{page|request|session|application}”] > body content </c:set>
<c:out>
用于计算一个表达式,并将结果输出到当前的JspWriter对 象。
<c:out>标签的功能类似于JSP的表达式<%=expression %>, 或者EL表达式${el-expression}
语法1:没有标签体: <c:out value=“value” [escapeXml=“{true|false}”]
EL最初定义在JSTL1.0规范中,在JSP2.0后,EL正式成 为JSP规范的一部分。在JSTL1.1规范中,已经没有了EL 部分,不过,在JSTL中仍然可以使用EL。
JSTL API下载地址为:
JSTL组成
JSTL是由5个不同的功能的标签库组成的。在 JSTL1.1规范中,为5个标签库分别指定了不同的 URI,并对标签库的前缀做出了规定:
JSTL
JSTL(JSP标准标签库)介绍JSTL(JSP标准标签库)介绍作者:令少爷(shaoye@)前言从JSP 1.1规范开始,JSP就支持在JSP中使用自定义标签了,自定义标签的广泛使用造成了程序员重复定义,这样就促成了JSTL(JavaServer Pages Stan dard Tag Library)的诞生。
因为工作中需要用到JSTL,但网上却苦于找不到有关JSTL的中文资料,所以就有了这篇文章。
JSTL简介JSTL是一个不断完善的开放源代码的JSP标签库,是由apache的jakarta小组来维护的。
JSTL只能运行在支持JSP1.2和Servlet2.3规范的容器上,如tomc at 4.x。
但是在即将推出的JSP 2.0中是作为标准支持的。
JSTL目前的最新版本为1.02,最终发布版为1.0。
JSTL包含两个部分:标签库和EL(Expression Language表达式语言)语言。
标签库目前支持四种标签:标签URI前缀示例Core/jstl/corec<c:tagname ...>XML pr ocessing/jstl/xmlx<x:tagname ...>I18N capable form atting/jstl/fmtfmt<fmt:tagname ...>Database access (SQL)/jstl/sqlsql<sql:tagname ...>Core支持JSP中的一些基本的操作;XML processing支持XML文档的处理;I18N capable formatting支持对JSP页面的国际化;Database access (SQL)支持JSP对数据库的操作。
由于本人水平有限,本文仅介绍Core标签,如有兴趣,可一起探讨其它三种标签的使用与扩充。
EL语言介绍EL语言是JSTL输出(输入)一个JAVA表达式的表示形式。
JSTL中的TLD配置和使用。
JSTL中的TLD配置和使⽤。
⼀,JSTL介绍: JSTL标签库,是⽇常开发经常使⽤的,也是众多标签中性能最好的。
把常⽤的内容,放在这⾥备份⼀份,随⽤随查。
尽量做到不⽤查,就可以随⼿就可以写出来。
这算是Java程序员的基本功吧,⼀定要扎实。
JSTL全名为JavaServer Pages Standard Tag Library。
JSTL是由JCP(Java Community Process)所制定的标准规范,它主要提供给Java Web开发⼈员⼀个标准通⽤的标签函数库。
Web程序员能够利⽤JSTL和EL来开发Web程序,取代传统直接在页⾯上嵌⼊Java程序(Scripting)的做法,以提⾼程序的阅读性、维护性和⽅便性。
⼆,JSTL配置: 主要牵涉到两个jar包 standward.jar和jstl.jar包(两个包1.0和1.2版本的下载以及TLD下载路径如下:) 加载⽅式包括两种 1,⾮⾃动加载 a,将tld⽂件copy到WEB-INFO下的tld⽬录下,没有就创建之 b,修改web.xml⽂件配置,添加配置如下 1<jsp-config>2<taglib>3<taglib-uri>/jstl/core</taglib-uri>4<taglib-location>/WEB-INF/tld/c.tld</taglib-location>5</taglib>6<taglib>7<taglib-uri>/jstl/fmt</taglib-uri>8<taglib-location>/WEB-INF/tld/fmt.tld</taglib-location>9</taglib>10<taglib>11<taglib-uri>/jstl/fn</taglib-uri>12<taglib-location>/WEB-INF/tld/fn.tld</taglib-location>13</taglib>14</jsp-config>View Code c,jsp中引⽤taglib 2,⾃动加载Servlet2.4规范提供了对tld⽂件的⾃动加载,tld⽂件在standard.jar的META-INF⽂件夹中。
简述jstl的作用
简述jstl的作用JSTL,指的是JavaServer Pages(JSP)标准标签库。
它是一套专为基于JSP的Web应用程序设计的标准标签集合,它提供了对JSP编程中复杂又频繁出现的操作和需要的功能封装。
JSTL是一个标准标签库,由 JavaSoft出,整合了以下5个子库:1.心:定义控制结构,比如循环、条件等;2. XML:用于处理XML文档;3.式化标记:定义了国际化、数字、日期和消息格式化标签;4. SQL:定义SQL标记;5. 事务:提供了基本的数据库操作支持。
JSTL的标签可以替代JSP的脚本块,使我们的JSP文件更加简洁,代码也更易于阅读和维护。
使用JSTL提供的标签,可以使我们的代码更加简洁优雅,增强可维护性,可以和xml、xsl结合来提供复杂的数据显示,可以利用JSTL定义的标签来实现对XML数据的读取、把XML数据转换成HTML页面能识别的格式,可以利用JSTL定义的标签来调用JavaBean属性以及调用JavaBean方法,可以方便地调用数据库服务,以及简单的使用EL表达式等等。
JSTL的优势在于它提供了一组可重用的标签,允许我们以更简洁、更容易理解的方式来完成我们的工作,这也极大地简化了JSP页面的构建和维护。
JSTL不仅极大地提高了JSP的开发效率,而且与其他类库高度整合,比如struts等,实际上,JSTL作为J2EE技术栈中重要的部分,已经广泛地被公司和企业所接受。
总之,JSTL为J2EE技术栈提供了一种更加高效、更加优雅的开发方式,它极大地丰富了JSP的功能,为Web应用的开发提供了更多的思路,并且它把JSP的静态性质变成了动态性质,使得开发者可以更加灵活,也使得开发者更容易维护JSP,并且JSTL支持多种标准,比如XML、SQl等,这也使得Web的开发效率更加高效准确。
jstl用法
JSTL用法一、什么是JSTLJavaServer Pages Standard Tag Library(JSTL)是一个JSP规范的标准标签库,它为JSP页面提供了一组标签和函数,用于简化JSP页面的开发和维护。
JSTL提供了核心标签库、格式化标签库、SQL标签库和XML标签库等,可以帮助开发者更方便地处理数据、格式化输出、执行SQL查询和处理XML数据等任务。
二、JSTL的引入要使用JSTL,首先需要在项目中引入JSTL的相关依赖。
在Maven项目中,可以通过在pom.xml文件中添加以下依赖来引入JSTL:<dependency><groupId>javax.servlet</groupId><artifactId>jstl</artifactId><version>1.2</version></dependency>引入依赖后,就可以在JSP页面中使用JSTL的标签了。
三、核心标签库1. <c:out>标签<c:out>标签用于输出表达式的值,可以防止XSS攻击。
它的使用方式如下:<c:out value="${expression}" />其中,expression是一个JSP表达式,可以是一个变量、一个属性或者一个EL表达式。
<c:out>标签会将expression的值进行HTML转义,以防止恶意代码注入。
2. <c:set>标签<c:set>标签用于设置一个变量的值,可以在JSP页面中使用这个变量。
它的使用方式如下:<c:set var="variableName" value="expression" />其中,variableName是变量的名称,expression是一个JSP表达式,用于给变量赋值。
chapter15_标准标记库(JSTL)
9/67
例:el.jsp
<jsp:useBean id="user" class="er"> <jsp:setProperty name="user" property="*"/> </jsp:useBean> <body> 获取参数方法一: 获取参数方法一 <hr/> 姓名:${erName}<br> 姓名 密码:${user.password }<br> 密码 年龄:${user.age }<hr> 年龄 获取参数方法二: 获取参数方法二 <hr/> 姓名:${erName}<br> 姓名:${erName}<br> 密码:${param.password }<br> 密码 年龄:${param.age }<hr> 年龄 获取参数方法三: 获取参数方法三 <hr/> 姓名:${param['userName']}<br> 姓名 密码:${param['password'] }<br> 密码 年龄:${param['age'] }<hr> 年龄 <p>
<hr/> 表单 <form> 姓名: 姓名 <input name="userName"><br> 密码: 密码 <input name="password"><br> 年龄: 年龄 <input name="age"><br> <input type="submit"> </form>
第15章JSP标准标签库JSTL_core_luo
什么是JSTL
为了实现页面无脚本,还要借aServerPages Standard Tag Library)JSP标准标签库
JSTL 的优点
提供一组标准标签
可用于编写各种 动态 JSP 页面
用于访问数据库
JSTL组成
JSTL是由5个不同的功能的标签库组成的。在 JSTL1.1规范中,为5个标签库分别指定了不同的 URI,并对标签库的前缀做出了规定:
如果只在当前Web应用程序中使用,可以将这两个文件放到WEBINF\lib目录下。
另外还有一个standard-examples.war文件在下载的zip包 内。这是JSTL的例子程序。将此文件放到Tomcat的 webapps目录下,打开IE,输入 http://localhost:8080/standard-examples/ 就可以了。
index.jsp: <a href="servlet/StuSer">使用mvc模式 调用servlet获得bean的值,在输出到 jsp用el表达式获得</a>
C_out_1.jsp <%@ page contentType="text/html;charset=GBK"%> <%@ taglib uri="/jsp/jstl/core" prefix="c"%> <html> <body> <hr> <c:set value="刘丽" var="userName" scope="session"/> <c:out value="${userName}"/> <hr> <c:set var="password" scope="session"> yjhgmy </c:set> <c:out value="${password}"/> <hr> <c:out value="${}"/> <c:out value="${st.age}"/> </body> </html>
jstl(jsp标签大全)
JSTL
JSTL: JSP 标 准 标 记 库 ( JSP Standard Tag Library,JSTL)是一个实现 Web 应用 程序中常见的通用功能的定制标记库集, 这些功能包括迭代和条件判断、数据管 理格式化、XML 操作以及数式标签库 sql标签库 xml标签库 函数标签库 c fmt sql xml fn <c:out> <fmt:format Date> <sql:query> <xml:forEach> <fn:split>
JSTL fmt
<fmt:formatNumber> 格式化数字 属性: value: 要格式化的值 type: 格式化的方式 (currency, number, percent) maxIntegerDigits: 最长的整数位 maxIntegerDigits: 最长的小数位 pattern: 格式化输出样式
JSTL core
<c:out>:主要用来显示内容 属性 value:需要显示的值 default:如果值为null,显示default的值 escapeXml:是否转换特殊符号
JSTL core
<c:set> :主要用来将值存储到jsp范围 中或javaBean中 属性 value:要储存的值 var:欲存入的容器名称 scope:var的范围 target:为javaBean或Map property:javaBean或Map的属性
JSTL core
<c:url>:用来产生一个url 属性: 与import基本相同
JSTL core
<c:redirect>:重定向 属性: url:导向的目标位址
第08章 JSTL标准标签库1
更多JSTL标准标签库的信息请登录:/taglibs/index.html
JSTL安装与配置
如果要想使用JSTL标准标签库,首先必须通过网址或者其它途径 进行获取,读者可登录“/products/jsp/jstl”下载JSTL。 JSTL的标签库(jstl-1.2.jar)下载完成后,就可以在Web应用中配置 JSTL标签库了。配置JSTL标签库有两种方法:一种是直接将jstl-1.2.jar 复制到Web应用的WEB-INF\lib目录中;另一种是在MyEclipse中进行添 加。
运行结果:
if条件判断标签
<c:if>是条件判断标签,是流程控制标签之一。该标签主要用于进 行条件判断并且只有当条件成立时才会处理body内容。其具体的语法格 式有如下两种: (1)不包含body内容。
<c:if test=“condition” var=“var” [scope=“{page|request|session|application}”]/>
<c:forEach var=“varName” begin=“begin” end=“end” [step=“step”] [varStaus=“varStatusName”] > 标签体 </c:forEach> 例: <c:forEach var=“i” begin=“1” end=“10”> 第<c:out value=“${i}” />次循环<p> </c:forEach>
属性名称 类型 说明
value escapeXML
default
Object boolean
Object
jstlC标准标签库
jstl C标准标签库(一)前缀:c描述:<c:out>标签是一个最常用的标签,用于在JSP中显示数据。
它的作用是用来替代通过JSP内置对象out或者<%=%>标签来输出对象的值。
语法:没有Body时的语法<c:out value=”value” [escapeXml=”{true|false}”] [default=”defaultValue”]/> 有Body时的语法<c:out value=”value” [escapeXml=”{true|false}”]>这里是Body部分</c:out>属性:Null和错误说明假若value为null,会显示default的值;假若没有设定default的值,则会显示一个空的字符串。
实例:语法:语法1: 没有body将value的值存储至范围为scope的varName变量之中<c:set value="value" var="varName" [scope="{page|request|session|application}"]/>语法2: 有body将body内容存储至范围为scope的varName变量之中<c:set value="value" [scope="{page|request|session|application}"]> body.....</c:set>语法3: 将value的值存储至target对象属性中<c:set value="value" target="target" property="propertyNmae"/>语法4: 将body内容的数据存储至target对象属性中<c:set target="target" property="propertyNmae">body....</c:set>Null 和错误处理:语法3和语法4会产生异常错误,有以下两种情况:.target 为null.target 不是java.util.Map或JavaBean对象假若value为null时:将由存储变量改为移除变量.语法1: 由var和scope所定义的变量,将被移除.若scope已指定时,则PageContext.removeAttribute(varName,scope);.若scope未指定时,则PageContext.removeAttribute(varName);.语法3:.假若target为Map时,则Map.remove(property);.假若target为JavaBean时,propertye指定的属性为null注意: var和scope这两个属性不能使用表达式来表示,我们不能写成 scope="${ourScope}"或var="${a}"属性:实例:------------------------------------------------------------------------------------------------------------------------------------------Example1<c:set value="this is andy" var="oneString"/>该示例将为名为“oneString”的变量赋值为“this is andy”,其作用范围为page。
J2EE上--第8章 JSTL标准标签库
目标: 目标:
掌握JSTL核心标签库 核心标签库 掌握 掌握JSTL格式标签库 掌握 格式标签库 了解其它标签库 掌握自定义标签
第八章 JSTL标准标签库 标准标签库
重点: 重点:
掌握JSTL核心标签库 核心标签库 掌握 掌握JSTL格式标签库 掌握 格式标签库 掌握自定义标签
8.3格式标签库 格式标签库
4:使用fmt:message输出国际化的资源 :使用fmt:message输出国际化的资源 fmt:message 打开项目,修改studentAdd.jsp,输出国际化的资源, 打开项目,修改 ,输出国际化的资源, 它们会根据具体设置的国际化环境代码来调用对应的资源 它们会根据具体设置的国际化环境代码来调用对应的资源 文件,具体代码如下所示: 文件,具体代码如下所示:
8.3格式标签库 格式标签库
提示: 提示: 在创建资源文件时, 字符均被转义, 在创建资源文件时,所有的 Unicode 字符均被转义, 这是因为 Java 的资源绑定机制只接受用 ASCII 编码的 属性文件。要创建这个文件, 属性文件。要创建这个文件,既可以使用 IDE 中的字符 串资源编辑器, 串资源编辑器,也可以使用 Unicode 编辑器创建一个 Unicode 文件,然后用 JDK 的 nativetoascii 工具转换它。 文件, 工具转换它。
<table border="0" cellspacing="0" cellpadding="0" align="center" width="100%"> <tr class="fontB"> <td align="center"> <fmt:message key="studentNo"></fmt:message></td> </tr><tr class="fontB"> <td align="center" bgcolor="#F0F0F0"> <fmt:message key="studentName"></fmt:message> </td> </tr>……
第五讲JSTL标准标签库
格式4:将标签体的内容保存至 target 对象的属性中
<c:set target=“对象名” property=“propertyName”> 标签体内容 </c:set>
例:分别设置、显示域中属性、JavaBean对象的属性、Map对 象的值,结果如下图所示:
12
13
3) <c:remove> 功能:用移除某个变量 格式: <c:remove var="varName" [scope=" page|request|session|application "] />
22
说明: <c:forEach>还提供varStatus 属性:主要用来存放现在指 到之成员的相关信息; varStatus属性还有另外四个属性:
23
<% String atts[] = new String[5]; atts[0] = "hello"; atts[1] = "this"; atts[2] = "is"; atts[3] = "a"; atts[4] = "pen"; request.setAttribute("atts", atts); %> <c:forEach items="${atts}" var="item" varStatus="s"><h2> <c:out value="${item}" /> 的四种属性: </h2> index:${s.index}</br> count:${s.count}</br> first:${s.first}</br> last:${st}</br> </c:forEach>
jstl if else用法
jstl if else用法JSTL(JSP标准标签库)是一组JSP自定义标签,用于简化JSP页面中的逻辑处理和数据显示。
在JSTL中,可以使用if-else标签来实现条件判断。
以下是if-else标签的用法:1. 导入JSTL库:在JSP页面中,需要先导入JSTL库,以便使用标签库中的标签。
可以使用以下语句导入JSTL库:```<%@ taglib prefix="c" uri="/jsp/jstl/core" %> ```2. 使用if-else标签:在JSP页面中,可以使用<c:if>标签来实现条件判断。
它的语法如下:```<c:if test="${条件表达式}"><!-- 此处为满足条件时的内容 --></c:if>```其中,`${条件表达式}`为需要判断的条件表达式,如果条件表达式为真,则执行if标签内的内容。
除了<c:if>标签,还可以使用<c:choose>和<c:when>标签来实现条件判断。
它们的语法如下:```<c:choose><c:when test="${条件表达式}"><!-- 此处为满足条件时的内容 --></c:when><c:otherwise><!-- 此处为条件不满足时的内容 --></c:otherwise></c:choose>```其中,可以有多个<c:when>标签,用于判断多个条件。
例如,以下示例代码展示了如何使用if-else标签判断变量num 的值是否大于10:```<c:if test="${num > 10}"><p>${num}大于10</p></c:if><c:if test="${num <= 10}"><p>${num}小于等于10</p></c:if>```通过使用if-else标签,可以根据条件来展示不同的内容,实现页面上的动态逻辑处理。
JSTL标签
JSTL什么是JSTLJSTL(JSP Standard Tag Library,JSP标准标签库)是一个不断完善的开放源代码的JSP标签库,是由apache的jakarta小组来维护的。
JSTL1.1必须在Servlet2.4和JSP2.0以上的容器才能正常工作。
为了抑制JSP里写大量的JA V A代码,所以用JSTL标签来实现JA V A里逻辑调用,JSP 标准标记库(JSP Standard Tag Library,JSTL)是一个实现 Web 应用程序中常见的通用功能的定制标记库集,这些功能包括迭代和条件判断、数据管理格式化、XML 操作以及数据库访问。
JSTL包括五个标签库,即Core标签库、XML标签库、国际化与格式化标签库和SQL标签库,JSTl的使用一.配置 JSTL两个 JAR 文件, jstl.jar 和 standard.jar 。
原文引入:<%@ taglib prefix="c" uri="/jsp/jstl/core" %><%@ taglib prefix="sql" uri=" /jsp /jstl/sql" %><%@ taglib prefix="fmt" uri=" /jsp /jstl/fmt" %> 二. Core 标签库(经常用)Core 标签库主要包括了一般用途的标签、条件标签、迭代标签和 URL 相关的标签。
在JSP 页面使用 Core 标签,要使用 taglig 指令,指定引用的标签库,如下:<%@ taglib uri=”/jsp/jstl/core” prefix=”c” %>一般用途的标签有 <c:out> 、 <c:set> 、 <c:remove> 、 <c:catch>1.<c:out>用于计算一个表达式并将结果输出。
实验九 EL表达式和JSTL标签库的使用
3. 在 Src 文件夹中创建一个 EmployeeBean 的 JavaBean,访问作用域变
量,其中包括 3 个属性 eno 表示雇员号、ename 表示雇员名和 ecompany 表
示雇员公司名。代码如下
【步骤1】EmployeeBean.java程序代码 package com.beans;
return eno; } public String getEname(){
return ename; } public String getEcompany(){
return ecompany; } } 【步骤2】在WebRoot目录下编写Employee.jsp页面,在其中通过表单输入雇员信息,将 请求转发到一个Servlet。 <%@ page contentType="text/html;charset=gb2312"%> <html> <body> 请输入雇员信息: <form action="employee.do" method="post"> <table> <tr><td>雇员号:</td><td><input type="text" name="eno"></td></tr> <tr><td>雇员名:</td><td><input type="text" name="ename"></td></tr> <tr><td>公司名:</td><td><input type="text" name="ecompany"></td></tr> </table> <input type="submit" value="提交"> </form> </body>
最新精品JAVA WEB开发实战经典P电子教案JSTL简介及安装
小结
JSTL是一个第三方的开源标签库; JSTL操作时需要自己手工配置,如果通过MyEclipse开发,则可以直接使 用。
E-MAIL:mldnqa@
下一章内容
核心标签库EΒιβλιοθήκη MAIL:mldnqa@4
5
函数标签库
I18N格式标签库
fn
fmt
fn.tld
fmt.tld
E-MAIL:mldnqa@
安装JSTL 1.2
下载来的JSTL.是以jar包的形式存在的,直接将此Jar包保存在WEBINF/lib目录之中,之后可以直接通过WINRAR工具打开此JAR包,并且将 里面的META-INF文件夹中的几个主要标签配置文件:c.tld、fmt.tld、 fn.tld、sql.tld、x.tld保存在WEB-INF文件夹之中
E-MAIL:mldnqa@
配置引用
<%@ taglib uri="/jstl/core" prefix="c"%> <%@ taglib uri="/jstl/fmt" prefix="fmt"%>
E-MAIL:mldnqa@
E-MAIL:mldnqa@
配置web.xml
<jsp-config> <taglib> <taglib-uri>/jstl/core</taglib-uri> <taglib-location>/WEB-INF/c.tld</taglib-location> </taglib> <taglib> <taglib-uri>/jstl/fmt</taglib-uri> <taglib-location>/WEB-INF/fmt.tld</taglib-location> </taglib> <taglib> <taglib-uri>/jstl/fn</taglib-uri> <taglib-location>/WEB-INF/fn.tld</taglib-location> </taglib> <taglib> <taglib-uri>/jstl/sql</taglib-uri> <taglib-location>/WEB-INF/sql.tld</taglib-location> </taglib> <taglib> <taglib-uri>/jstl/x</taglib-uri> <taglib-location>/WEB-INF/x.tld</taglib-location> </taglib> </jsp-config>
JSTL标准标签库
语法格式:
<c:choose>
<c:when>
业务逻辑
</c:when>
<c:otherwise>
业务逻辑
</c:otherwise>
</c:choose>
5.12实例
<c:set var="now">
<%=new java.util.Date().getDay()%>
这个标签可以根据不同的条件去处理不同的业务,也就是执行不同的程序代码,它和Java基础语法中的if一样,<c:if>有两种语法格式
语法1:<c:if test=“表达式” var =name[scope="范围"]/>
这中语法格式会判断条件表达式,并将条件的判断结果保存在var属性指定的变量中,而这个变量存在于scope属性指定范围内
</c:out>
escapeXml指定特殊符号是否转义输出,例如<转义成<>
default如果value属性值等于null,则显示default当中的默认值
5.3<c:set>变量设置
此标签用于在某个属性范围中设置某个值
4种语法格式:
no.1在指定范围赋值
<c:set value="v" var="name"[scope="prsa"]>
varStatus String 循环的状态变量 不可以
varStatus 下的属性成员
属性 类型 说明
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、JSTL简介引入:在JSP以及javaBean中,当我们在网页中使用循环,或者使用对象方法连接数据库时,我们都不可避免的需要使用到jsp的脚本编制元素,其中嵌有大量的java代码,现在开发者想尽可能的避免使用jsp脚本编制元素,进一步将应用程序的显示层和业务层完全分离,更加有利于应用程序的分工协作,jsp开发者指定了 JSTL ,提供了一组统一的通用的自定义标签文件,并将这些文件组合在一起,形成了jsp标准标签库,即JSTL。
1) 定义:包含编写和开发JSP页面的一组标准标签a) 特点:为开发者提供了一个无脚本环境,无需编写JAVA脚本b) 包含1. 核心标签库2. SQL标签库3. 国际化(I18N)与格式化标签库4. XML标签库c) 分类:两个版本1. 使用 EL2. 使用请求时表达式2) 作用a) 进一步简化开发,简化页面, 实现页面脱离jsp脚本元素b) 让页面尽可能少的出现java代码c) 优势:与EL表达式配合使用,可以用EL 代替属性值进一步动态改变3) 使用a) 导入标签库(Eclipse等工具中需要做这一步)b) 使用标签库中标签的实施步骤i. 将JSTL对应的JAR文件:jstl.jar、standard.jar添加到应用程序的WEB-INF/lib目录(这两个jar文件见课件目录” JSTL标签库”)ii. 在编写的jsp页面中指定标签库的描述信息:语法:<%@ taglib prefix=”c” uri=”/jstl/core_rt” %>关于上述语法使用的扩充:<%@ taglib prefix =”标签别名” uri =”标签库的位置“>1. 标签别名常用c2. 标签库的位置:(即uri的设置)a) 教材上:” /jstl/core_rt“ 指向sun公司网站上的库文件地址,注意这里只是个地址指向,即使没有上网,在工具中也已经对应到工程中的路径了(注意:此时要先将标签库的两个jar文件放入”工程\WEB-INF\lib”目录下。
)b) 也可使用:”/WEB-INF/c.tld ”(但要注意:此时要先将标签库两个jar文件中的一个standard.jar文件解压后的目录META-INF中的所有*.tld文件放入”工程名/WEB-INF/”目录下,即保证该目录下有c.tld文件)注意:上述两种导入标签库的方式,以第一种为佳,即只需要将两个标签库jar文件放入”工程\WEB-INF\lib”目录下即可。
c) 在JSP中使用3. <c: xxxxxx 属性名=“属性值” 属性名=“属性值”>4. xxxxx就是标签库中提供的各种功能,详述如下:二、核心标签库-----core 或 c.tlda) 分类:1. 通用标签:操作JSP页面创建的范围变量2. 条件标签:操作条件运算判断与处理3. 循环标签:操作循环运算b) 通用标签1. 设置,删除,显示在JSP页面内创建的变量值或对象值2. 变量的范围是由设置时的scope 属性决定3. <c: set> 用于设置变量或者对象属性的值<c:set var=”变量名” value=”变量值” scope=”作用域范围”/><c:set target=”对象名” property=”属性名” value=”值”/>:注意:“变量值” 可以是 EL表达式4. <c: out> 用于动态显示数据(功能类似于EL)1:<c:out value=” 表达式” default=”默认值” escapeXml=”true/false” >2: 注意:表达式可以是 1》普通的常量值2》输出已经设置的变量值:${变量的名称}5. <c: remove>用于删除创建的变量a) <c:remove var=”变量的名称” scope =”作用域”>(案例:演示上面几个标签)c) 条件标签1. 提供条件运算,两种类型: if choose2. <c: if> 语法a) <c:if test=”条件” var=” 存放测试条件结果的变量” scope=”作用域” >b) 。
条件体c) </c:if>d) var 存放的是:结果为true 或 falsee) 不能实现else 由下面的实现3. <c:choose>语法a) <c:choose>i. <c:when test=”条件表达式1”>ii. 需要处理的语句1iii. </c:when>i v. <c:when test=”条件表达式2”>v. 需要处理的语句2vi. </c:when>vii. <c:otherwise>viii. 需要处理的语句ix. </c:otherwise>b) </c:choose>(案例 three.jsp)d) 迭代标签1. 分两种: forEach forTokens2. forEach简单的应用<c:forEach var=”循环控制变量” test=”循环条件” begin=”循环开始值” end=”循环结束值” varStatus=”保存循环状态的变量”>循环体</forEach>用于集合对象的访问<c:forEach var=”存放集合当前记录的变量” items=”要轮循的集合名” begin=”集合的起始索引位置” end=”集合的结束位置”></forEach>注意:如果没有设置begin,end将检索所有元素,step没设置默认为13. forTokens (与<c:forEach>有区别,用于轮循一个字符串)<c:forTokens items=”要轮循的字符串”delims=”单词的分界符” var=”存放单词的变量”></c:forTokens>(案例: 演示上面几个标签)三、SQL 标签库---- sql.tld一般的企业级的应用是离不开数据库操作的,在许多时候都需要在JSP页面中访问数据库,因此提供对数据库访问的支持就变的十分重要了,在JSTL中的SQL标记库就提供了一套可以对数据库进行访问,查询,更新等操作的标记,极大的方便了JSP页面中数据库访问1、作用:用于进行数据库的操作2、在JSP页面中加入标签库<%@ taglib uri=“/jstl/sql_rt ” prefix=”sql” %>3、具体使用标记a) 设置数据源<sql:setDataSource>具体用法:<sql:setDataSource driver=”驱动类路径” url=”连接的数据库设置” user=”用户名” password=”密码” var=”连接对象名”/>b) 查询数据<sql:query>具体用法:①<sql:query sql=”查询语句” var=”结果集名” scope=”结果集保存的范围” dataSource=”关联的数据源对象” maxRows=”最大行数” startRow=”开始行的索引”/>②<sql:query var=”结果集名” scope=”保存范围”>select 语句</sql:query>操作获取的结果集<sql:query var=”students” scope=”session” sql=”select * from stu” dataSource=”conn”/>${students.rowCount}可返回结果集中的数据行数${students.columnNames}可返回所有字段的集合${students.rowByIndex}返回结果集中某行的数据集合c) 数据更新<sql:update>具体用法:① <sql:update sql=”SQL语句” dataSource=”数据源对象名”/>② <sql:update dataSource=”数据源对象名”>SQL语句</sql:query>d) 事务应用<sql:transaction>具体用法:<sql:transactio n dataSource=”数据源对象名”isolation=”事务隔离级别”><sql:query>或者<sql:update></sql:transaction>其中上面的隔离级别:read_committed,read_uncommited,repeatable,serializable注意:如果在事务中设置了dataSource属性,在里面的标记中就不需设置了。
e) 参数设置<sql:param>① 作用:在作查询或者数据操作时参数的设置② 使用:通常是做为<sql:query>和<sql:update>标记的子标记案例:<sql:query dataSource=”conn” var=”stus” scope=”page”>select * from student where stuage>?<sql:param value=”参数值”/></sql:query>四、国际化和格式化标签----fmt 或 fmt.tld1、作用:对数字和日期时间的输出进行标准化,解决中文乱码问题2、在jsp页面加入标签库<%@ taglib uri=“/jstl/fmt_rt” prefix=”fmt” %>3、具体标签的使用a) <fmt:setLocale>① 作用:用于JSP页面的本地化② 使用:<fmt:setLocale value=”语言和区域”/>b) <fmt:formatNumber>① 作用:用于JSP页面数据的格式化② 使用:<fmt:formatNumber type=”number|currency|percent” value=”要格式化的数据” />c) <fmt:formatDate>① 作用:用于JSP页面日期的格式化② 使用:<fmt:formatDate type=”time|date|both” value=”要格式化的日期数据”/>d) <fmt:requestEncoding>① 作用:指定请求数据的编码方式② 使用:<fmt:requestEncodding value=”编码方式” />例如:<fmt:requestEncoding value=”gb2312”/>一般地,也可这样使用:a) 创建好属性文件比如叫 len_zh .propertiesb) <fmt:setLocale value=”指向文件的名称zh”> (zh为中文,en为英文,固定的,Y2课程里会讲到。