JSTL核心标签库
jsp中c标签的使用

核心标签库它是JSTL中的核心库,为日常任务提供通用支持,如显示和设置变量、重复使用一组项目、测试条件和其他操作(如导入和重定向Web内容)。
Core标签按功能可分为4种类型:1 变量维护:(1)<c:set>:设置变量值和对象属性。
语法如下:<c:set value="值" var="变量名" scope="变量的作用域" target="对象名" property=" 对象属性名"></c:set>每种设置都有两种方式,总结起来,<c:set>的4种形式,如下所示:a. 使用标记属性设置JSP变量<c:set value="值" var="变量名" scope="作用域"/>b. 使用标记体设置JSP变量<c:set var="变量名" scope="作用域">标记内容</c:set>c. 使用标记属性设置对象属性<c:set value="变量名" target="对象名" property="对象属性名"/>d. 使用标记体设置对象属性<c:set target="对象名" property="作用域">标记内容</set>(2)<c:remove>:在指定作用域范围内删除变量。
语法如下:<c:remove var="变量名" scope="作用域"/>2 流程控制:分为条件标签和迭代标签。
条件标签:<c:if> <c:choose> <c:when> <c:otherwise>(1)<c:if>:与Java语言中的if语句的使用方法一样,但不能实现else的功能。
JSTL的用法

JSTL标签库的使用是为类弥补html表的不足,规范自定义标签的使用而诞生的。
在告别modle1模式开发应用程序后,人们开始注重软件的分层设计,不希望在jsp页面中出现java逻辑代码,同时也由于自定义标签的开发难度较大和不利于技术标准化产生了自定义标签库。
JSTL标签库可分为5类:❑核心标签库❑I18N格式化标签库❑SQL标签库❑XML标签库❑函数标签库本章将对这些内容一一讲述。
9.1 核心标签库JSTL的核心标签库标签共13个,从功能上可以分为4类:表达式控制标签、流程控制标签、循环标签、URL操作标签。
使用这些标签能够完成JSP页面的基本功能,减少编码工作。
(1)表达式控制标签:out标签、set标签、remove标签、catch标签。
(2)流程控制标签:if标签、choose标签、when标签、otherwise标签。
(3)循环标签:forEach标签、forTokens标签。
(4)URL操作标签:import标签、url标签、redirect标签。
在JSP页面引入核心标签库的代码为:<%@ taglib prefix="c" uri="/jsp/jstl/core" %>下面将按照功能分类,分别讲解每个标签的功能和使用方式。
9.2.1 表达式控制标签表达式控制分类中包括<c:out>、<c:set>、<c:remove>、<c:chtch>4个标签,现在分别介绍它们的功能和语法。
1.<c:out>标签【功能】:用来显示数据对象(字符串、表达式)的内容或结果。
在使用Java脚本输出时常使用的方式为:<% out.println(“字符串”)%><%=表达式%>在web开发中,为了避免暴露逻辑代码会尽量减少页面中的Java脚本,使用<c:out>标签就可以实现以上功能。
第三章_第三讲_JSTL标准标签库

Core Java
纲要
JSTL简介 JSTL的下载与安装 Core标签库的使用
2
Java EE
1. JSTL简介
(1)什么是JSTL? JSTL (JSP Standard Tag Library, JSP标准标签库) 是一个开源项目,是一个标准的已定制好的JSP标签库。它可 以替代Java代码实现各种功能,如:输入输出、流程控制、 迭代、数据库查询及国际化的应用等。
说明:
只有当value的值为null时,才会输出缺省值;
default属性不能与标签体同时出现;
escapeXml属性用来控制一些特殊字符(如:<、 >、’、”、&等)是否进行转换,默认值为true,即 <c:out>默认会将 <、>、’、” 和 & 转换为 <、>、 '、" 和 & 若不想转换时,只需设为false即可。
4
Java EE
对五大类的描述:
JSTL
前置 名称 c
fmt sql xml fn
URI
范例
核心标签库
I18N格式标签库 SQL 标签库 XML 标签库 函数标签库
/jsp/jstl/core
/jsp/jstl/xml /jsp/jstl/sql /jsp/jstl/fmt
${er.sex} 从Session的范围中,取得用户的性别。
依照之前JSP的写法如下:
User user = (User)session.getAttribute("user"); String sex = user.getSex( );
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 使用简介

${imb.multiple == '2'}:计算有效范围内imb对象的属性multiple的值是否等于2,如果等于2则返回true,否则返回false${users}:返回有效范围内名为”users”的值,该值可以是任何对象,如:request.setAttribute(“users”,new ArrayList()); 这样得到的就是一个集合.三、部分标签使用说明1 、 <c:out>[说明]输出值,相当于 struts 中的 <bean:write>[举例]获得 request 中的属性: <c:outvalue="${requestScope.test_all}"/>获得 session 中的属性:<c:outvalue="${sessionScope.test_all}"/>获得 application 中的属性:<c:outvalue="${applicationScope.test}"/>2 、 <c:forEach>[说明]循环某个范围内的一个集合(可以是Collection、Set、List、Array 等)items----表示要循环的集合var---表示当前集合中的某条记录,可以对它进行访问[举例]3 、 <c:if>[说明]逻辑判断[举例]<c:if test="${imb.hmtb.typeid == 4}"><c:if test="${imb.multiple == '2'}">(10,270)</c:if><c:if test="${imb.multiple == '1'}">(10,290)</c:if> </c:if>4 、<c:set>[说明]设置不同的属性,并且指定它们的范围[举例]<c:set value="10000" var="maxUser" scope="application"/><c:set value="20" var="maxIdelTime" scope="session"/><c:set value="next.jsp" var="nextPage" scope="request"/>相当于:application.setAttribute(“maxUser”,”10000”);session.setAttribute(“maxIdelTime”,”20”);request.setAttribute(“nextPage”,”next.jsp”);一、什么是JSTLJSTL(JavaServerPages Standard Tag Library)JSP标准标签库。
JSTL标签库

JSTL标签库引入:/harderxin/article/details/7090501自定义标签:我们可以自己去定义一些jsp标签。
自定义包含两个:java类,tld文件(标签的描述文件)标签库JSTL(JSP Standard Tag Library):因为在jsp中使用java代码去控制页面的显示(即:用小段的<%%>),可读性很差,这样后期维护会比较麻烦,所以引入了Java标签库。
n 常用的JSTL标签库:n 核心标签库:/jsp/jstl/core包含Web 应用的常见工作,比如:循环、表达式赋值、基本输入输出等。
n 格式化标签库:/jsp/jstl/fmt用来格式化显示数据的工作,比如:对不同区域的日期格式化等。
n XML 标签库:/jsp/jstl/xml用来访问XML 文件的工作,这是JSTL 标签库的一个特点。
n 函数标签库:/jsp/jstl/functions用来读取已经定义的某个函数。
n 数据库标签库:/jsp/jstl/sql可以做访问数据库的工作。
J2EE 1.4:使用Java标签库首先要在项目中引入jstl.jar和standard.jar两个jar包,MyEclipse 中有这个功能;Standard.jar中有tld文件(是一个xml文档),这是关于JSTL标签的说明文件,对应的java 类就是加载这些说明,然后对我们写的JSTL标签进行解析处理。
JAVAEE 5.0:javaee5.0类库已经自带了jstl相关的jar包。
不需要再添加,可以直接使用jstl。
其次要在页面中加入这样一个标签头[gjw1]<%@ taglib prefix="c"uri="/jsp/jstl/core" %><c:out>标签用于显示变量数据。
<c:out value="${a}" default="空"[c2]escapeXml="true" [c3]></c:out><c:set>标签的常用属性(将值存储到作用域或为JavaBean 中的变量属性赋值):示例:<c:forEach items="${li}" var="str" begin="0" end="9" step="1" varStatus="ind"><b>${fn:substring(str,1,fn:length(str))}</b><c:if test="${(ind.index+1)%3==0}"><br></c:if></c:forEach><c:forEach items='${fn:split("a,b,c",",")}'[gjw17]var="cc" >${cc} <br></c:forEach>扩展知识点:JSTL的格式化标签库。
第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 核心标签库 使用

JSTL 核心标签库使用JSTL 核心标签库标签共有13个,功能上分为4类:1.表达式控制标签:out、set、remove、catch2.流程控制标签:if、choose、when、otherwise3.循环标签:forEach、forTokens4.URL操作标签:import、url、redirect使用标签时,一定要在jsp文件头加入以下代码:下面分别对这些标签进行说明:1. <c:out> 用来显示数据对象(字符串、表达式)的内容或结果使用Java脚本的方式为:<% out.println("hello") %> <% =表达式 %>使用JSTL标签:<c:out value="字符串">,例如:<body><c:out value="<要显示的数据对象(未使用转义字符)>" escapeXml="true" default="默认值"></c:out><br/><c:out value="<要显示的数据对象(使用转义字符)>" escapeXml="false" default="默认值"></c:out><br/><c:out value="${null}" escapeXml="false">使用的表达式结果为null,则输出该默认值</c:out><br/></body>那么网页显示效果为:2. <c:set> 用于将变量存取于 JSP 范围中或 JavaBean 属性中。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
例: <c:choose>示例 项目名称:e1 程序:choose.jsp
7 <c:forEach>标记
1、计数循环
• <c:forEach>标记实现类似Java的for计数循环。 • 它的基本用法如下示: <c:forEach begin="初值" end="终值" [step="步长"] [var="变量"] [varStatus="状态变量"]> ……标记体(循环体)…….. </c:forEach>
• 在Tomcat中安装JSTL1.2.1的方法是:从 https:///download.html下载JSTL 支持库文件,将JSTL1.2.1的支持库文件 javax.servlet.jsp.jstl-1.2.1.jar和 javax.servlet.jsp.jstl-api-1.2.1.jar复制到应用 项目的WEB-INF\lib文件夹下 。
sql
/jsp/jstl/sql
<sql:query>
<x:forBach> <fn:split>
xml /jsp/jstl/xml fn /jsp/jstl/fn
JSTL 1.2.1的安装
例: <c:out>示例 项目名称:e1 程序:out.jsp
4 <c:catch>标记
• <c:catch>标记用来捕获异常,类似于Java 语言中的try-catch异常处理机制。 • 基本用法如下示:
<c:catch [var="变量名"]> … 可能发生异常的代码段 … </c:catch>
• 注意:var属性指定的变量是页内有效的,并且当 没有异常抛出时该变量就不存在。
例: <c:catch>示例 项目名称:e1 程序:catch.jsp
5 <c:if>标记
• <c:if>起到判断语句作用,类似于Java语言 中的if语句。 • <c:if>的基本用法为:
<c:if test= "条件表达式" var="变量" scope="变量范围"> […标记体…..] </c:if>
• 通过<c:set>标记可调用JavaBean对象中的 setXXX()方法,将一个对象存储到JavaBean中的 相应属性中。
• 基本用法如下示:
<c:set target="对象变量名" property="对象中 的属性名" [value="待保存的对象"]> [待保存的对象] </c:set>
•
JSTL提供的标签库
JSTL
核心 标签库 I18N格 式 标签库
前缀 名称
c fmt
URI
/jsp/jstl/core /jsp/jstl/fmt
范例
<c:out> <fmt:formatDate>
SQL 标签库
XML 标签库 函数 标签库
• MyEclipse中自带有JSTL支持库文件。
JSTL 标记的结构和使用
1、JSTL标记的结构 一个JSTL标记主要包含三部份:起始标记(可 能包含属性)、标记体、结束标记。例如: <c:if test="${6>5}"> 结果:6>5 </c:if>
2、在JSP页面中使用JSTL标记的方法 要在JSP页面中使用JSTL标记,首先要在JSP 页面中使用JSP的taglib指令加以声明, taglib指令的基本用法为: <%@ taglib uri="标记库的URI名" prefix="标 记前缀" %>
8 <c:forTokens>标记
• <c:forTokens>标记用来遍历一个字符串中的单词, 单词是字符串中用指定分隔符隔开的词汇。它ns>示例 项目名称:e1 程序:forTokens.jsp
9 <c:import>标记
• <c:import>标记的作用是将其它文本资源包 含到当前页面中。 • <c:import>的基本用法为:
例: <c:remove>示例 项目名称:e1 程序:remove_1.jsp、remove_2.jsp
3 <c:out>标记
• <c:out>标记用来显示数据,待显示的数据 可以是常量,也可以是EL表达式,它的功能 相当于<%=%>。 • <c:out>的基本用法如下示:
<c:out value="待显示的数据" [default="变量的默认值"] [escapeXml="true|false"]> [变量的默认值] </c:out>
JSTL核心标签库
JSTL简介
• JSTL的全称是JSP标准标记库(JSP Standard Tag Library,JSTL),它是SUN公司为简化JSP页 面设计而提出的一种技术规范。 JSTL提供的标签库主要分为五大类:
① ② ③ ④ ⑤ 核心标签库(Core tag library) I18N格式标签库(I18N-capable formatting tag library) SQL标签库(SQL tag library) XML标签库(XML tag library) 函数标签库(Functions tag library)
<c:import url="" [context=""] [var=""] [scope=""] [charEncoding=""]> ...[<c:param>]... </c:import>
例: 使用<c:import>标记导入URL内容 项目名称:e1 程序:import1.jsp
例: 使用<c:import>标记导入URL内容并保存到变量 项目名称:e1 程序:import2.jsp
流程控制 Core 迭代操作
URL操作
1 <c:set>标记
• <c:set>标记的作用是定义一个JSP作用范围变量, 并对变量进行赋值。<c:set>主要有以下两种用法: 1、用<c:set>定义作用范围变量
• 用法如下: <c:set var="变量名" [value="待保存的对象"] [scope="JSP的作用范围"]> [<c:set>标记体] </c:set> 第一种用法是将value属性指定的表达式的值赋值给var属性指 定的变量: <c:set var="变量名" var="表达式"/> 第二种用法是使用标记体指定要赋给变量的值。
例:通过<c:set>操作JavaBean对象 项目名称:JSTLDemo 程序:InfoBean.java、useJSTL_2.jsp
2 <c:remove>标记
• <c:remove>用于移除一个作用范围变量。 • 基本语法如下示:
<c:remove var="对象的变量名" scope="作用 范围"/>
• 第1步:新建一个名为"exam1.jsp"的 JSP页面,制作表单: 在表单内插入一个名字为"userName"的用户名文本域。插 入一个提交按钮。表单提交给exam2.jsp处理。 • 第2步:新建一个名为"exam2.jsp"的 JSP页面,使用 <c:set>标记存储变量。
2、通过<c:set>操作JavaBean对象
例如,要在JSP中使用JSTL核心标记库打印一个字符 串"JSTL的使用",在JSP页面中的代码如下示:
<%@ taglib uri="/jsp/jstl/core" prefix="c" %> <c:out value="JSTL的使用"/>
例:测试JSTL是否正常工作 项目名称:JSTLDemo 程序:useJSTL.jsp
【例1】在JSP页面用JSTL标记将3.14*5表达式的计
算结果保存为一个page作用范围变量。用JSTL标 记和EL表达式读取客户端一个名为"userName"文 本域中的用户名,如果不为空,则保存为一个 session作用范围变量。动态产生一个表格的 HTML的代码,并将HTML代码段存为一个page作 用范围变量。最后在JSP页面中打印上述三个作用 范围变量。
例: 使用带参数的URL 项目名称:e1 程序:import3.jsp
10 <c:redirect>标记
• <c:redirect>标记实现重定向功能。 • 它的基本用法如下: