!JSTL-自定义标记

合集下载

JSP中JSTL提供的函数标签EL表达式操作字符串的方法

JSP中JSTL提供的函数标签EL表达式操作字符串的方法
注:如果字符串中未包含索引串,返回空字符串.
(3)去空格:
trim("原字符串")----去掉字符串前后的空格----例:${fn:trim(" Hello,Word! ")}
(4)替换字符:
replace("原字符串","要替换的字符","替换后的字符")----替换字符----例:${fn:replace("Hello,Word!","Word","你好")}
因此JSTL内置了几个用于字符串操作的方法,可以直接在表达式中使用,大大的简化了代码,提供代码的可读性。在JSTL的表达是中要使用一个函数,其格式如下
${fn:methodName(args....)}
在使用这些函数之前必须在JSP中引入标准函数的声明
<%@ taglib prefix="fn" uri="/jsp/jstl/functions" %>
----${fn:contains("Hello,Word","Hello") }
containsIgnoreCase("字符串1","字符串2")返回boolean----判断一个字符串是否包含另一个字符串,不区分大小写
----${fn:containsIgnoreCase("Hello,Word","w") }
JSP中JSTL提供的函数标签EL表达式操作字符串的方法
首先在jsp页面导入标签
<%@ taglib prefix="fn" uri="/jsp/jstl/functions"%>

el和jstl实验总结 -回复

el和jstl实验总结 -回复

el和jstl实验总结-回复实验总结:el和jstl在Java Web开发中的应用引言:在Java Web开发中,为了简化页面的开发和编写,提高开发效率,EL表达式(Expression Language)和JSTL标签库(JSP Standard Tag Library)被广泛应用。

本文将以实验总结的形式,深入探讨EL表达式和JSTL标签库在Java Web开发中的应用和使用方法,并提供一些实际案例,以便读者更好地理解和应用这两个技术。

第一部分:EL表达式(Expression Language)的应用1. EL表达式的概述:EL表达式是一种用于在JSP页面中处理和访问服务器端数据的简单而强大的语言。

它提供了一种简洁和易于理解的方式来获取和展示数据。

2. EL表达式的语法:介绍EL表达式的基本语法,包括变量访问、属性访问、方法调用等。

3. EL表达式的内置对象:介绍EL表达式内置的一些对象和方法,如pageContext、request、response、session等,以及它们的常用用法。

4. EL表达式的运算符:介绍EL表达式中常用的运算符,如四则运算、逻辑运算、比较运算等。

5. EL表达式的应用案例:通过实际案例,展示EL表达式在Java Web开发中的应用,如获取用户输入、计算表单数据、展示数据库查询结果等。

第二部分:JSTL标签库(JSP Standard Tag Library)的应用1. JSTL标签库的概述:JSTL是一组自定义标签,通过标签的方式提供了一种简洁和易于维护的方式来处理和展示JSP页面中的数据。

2. JSTL标签库的分类:介绍JSTL标签库的分类,如核心标签库、格式化标签库、数据库标签库等。

3. JSTL核心标签库的常用标签:介绍JSTL核心标签库中常用的标签,如<c:if>、<c:forEach>、<c:choose>等,以及它们的常用用法。

JSP2.0应用教程_11 自定义标记

JSP2.0应用教程_11 自定义标记

2013-9-1
9
11.2.1 内容重用

– – –
用标记文件定义内容
标记文件使用JSP 2.0规范新引入的 tag 指令 完整的tag指令的语法格式 tag语法.txt 主要属性说明:
1. display-name是在使用工具时显示的名称 2. body-content指定标记本体内容的属性 3. small-icon和large-icon都是图形化工具使用 时显示的图标
2013-9-1
10
11.2.1 内容重用
4. description定义标记文件的说明文字 5. example 定义使用标记的例子 6. language、import、 pageEncoding、 isELIgnored 的使用与page指令相同(参见 2.5.1)

配置标记文件 – 只需要将标记文件放置在对应Web应用的 WEB-INF目录下的tags目录(或其下的 子目录)下,就可以在该Web应用中的所 有JSP页面中使用该标记文件。
− 与contentBox.jsp 有如下不同:
2013-9-1 14
11.2.2 自定义模板
1. 属性定义方式不同 2. 属性的使用方式不同 3. 内容定义不同
2013-9-1
15
11.2.2 自定义模板
• 使用标记文件模板
– 先使用taglib指令导入标记库 – 然后标记文件就可以作为自定义标记来使用 了 – 例:使用标记文件实现的模板 contentBoxTagFile.jsp − 自定义标记的属性值也可以用XML语法格式 直接在标记定义的属性中传递,这样就不需 要使用<jsp:body>标记来指定内容了
2013-9-1

JSTL的用法

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>标签就可以实现以上功能。

JSP标准标签库(JSTL)精品PPT课件

JSP标准标签库(JSTL)精品PPT课件
JSTL规范有Sun公司制定,Apache的Jakarta小组负责实 现,目前的版本是JSTL1.1.2
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标准标签库

一、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”目录下。

JSTL标签库

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的格式化标签库。

jstl(jsp标签大全)

jstl(jsp标签大全)
JSTL
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:导向的目标位址
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

(2)属性。通过属性来动态控制标记的 )属性。 行为。 行为。
(3)体内容:在标记的开始元素与结束 )体内容: 元素之间的内容称为体内容。 元素之间的内容称为体内容。
根据对体内容的不同行为, 根据对体内容的不同行为,可以将自定义标记分为两 种类型: 种类型: (1)简单标记。不对体内容进行处理的标记。它必 )简单标记。不对体内容进行处理的标记。 须继承接口javax.Servlet.jsp.tagext. TagSupport。 须继承接口 。 (2)处理体内容的标记。对体内容 即对在开始和结 )处理体内容的标记。对体内容(即对在开始和结 束标记之间的内容)进行操作的标记, 束标记之间的内容 进行操作的标记,它必须继承接口 进行操作的标记 javax.Servlet.jsp.tagext.BodyTagSupport。 。 注意:简单标记仍然可以有体内容, 注意:简单标记仍然可以有体内容,只不过它的标记 处理程序不能读取体内容。 处理程序不能读取体内容。
当一个包含自定义标记的JSP页面 页面 当一个包含自定义标记的 被转化为Servlet时,Web容器自动 被转化为 时 容器自动 调用自定义标记对应的标记处理程 序来处理JSP页面。 页面。 序来处理 页面
自定义标记
通过自定义标记,将一些重复性的、 通过自定义标记,将一些重复性的、 与特定应用相关的业务逻辑以文档 化标记的形式进行调用,维护JSP以 化标记的形式进行调用,维护 以 文档为中心的开发方式, 文档为中心的开发方式,最大程度 地降低JSP页面的代码含量,提高 页面的代码含量, 地降低 页面的代码含量 JSP页面可维护性。 页面可维护性。 页面可维护性
• uri:引用唯一识别的 :引用唯一识别的TLD。 。 • prefix: 定义区分不同标记库中标记的方法,避 定义区分不同标记库中标记的方法, 免不同标记库中标记重名引起的冲突。 免不同标记库中标记重名引起的冲突。
开发自定义标记的步骤
(1)编写标记处理器。 )编写标记处理器。 (2)编写自定义标记库的描述文件 )编写自定义标记库的描述文件TLD(实 实 际是一个XML文件 。 文件)。 际是一个 文件 页面。 (3)编写应用标记的 )编写应用标记的JSP页面。 页面 上述三个步骤之间没有顺序限制。 上述三个步骤之间没有顺序限制。
标记描述文件中标记的意义 标记描述文件中标记的意义 描述文件 属性 tlib-version jsp-version short-name uri display-name small-icon large-icon discription listener tag 意义 标记库版本 JSP版本 版本 标记库名称缩写, 标记库名称缩写,可选 标记库文件URI 标记库文件URI 标记库显示名称, 标记库显示名称,可选 显示小图标, 显示小图标,可选 显示大图标, 显示大图标,可选 描述信息, 描述信息,可选 监听器 标记描述
步骤
编写标记处理程序 • 对于自定义标记的每个属性,必须在标记处 对于自定义标记的每个属性, 理器中定义一个属性及属性相对应的 getXxx/setXxx(读写)操作方法。 (读写)操作方法。 • 属性操作方法必须为 属性操作方法必须为public类型,因为web容 类型,因为 类型 容 器在遇到自定义标记的属性时会自动调用标 记处理程序中相应的读写操作方法进行属性 值的传递。 值的传递。
编写调用标记的Jsp页面 页面 编写调用标记的 <%@ taglib uri=“” prefix=“”> 说明:uri属性引用唯一标识的标记库描 说明: 属性引用唯一标识的标记库描 述符( 述符(TLD); ); prefix属性定义区分不同标记库 属性定义区分不同标记库 中标记方法, 中标记方法,避免不同标记库中标记 重名引起冲突。 重名引起冲突。
简单标记的处理过程容器设置标 Nhomakorabea处理器的pageContext属性来初 (1)Web容器设置标记处理器的 ) 容器设置标记处理器的 属性来初 始化标记处理器。 始化标记处理器。 JspWriter output=pageContext.getOut(); (2)简单标记处理器必须实现 )简单标记处理器必须实现doStartTag()和 和 doEndTag()两个标记接口的方法。Web容器调用标记 两个标记接口的方法。 容器调用标记 两个标记接口的方法 处理器的doStartTag()方法。方法返回 方法。 处理器的 方法 方法返回SKIP_BODY, , 引导Web容器忽略体内容;返回 容器忽略体内容; 引导 容器忽略体内容 EVAL_BODY_INCLUDE, Web容器分析体内容及其 , 容器分析体内容及其 包含的子标记。 包含的子标记。
自定义标记库的优点
• • • • 易于安装在多个项目上。 易于安装在多个项目上。 良好的扩展性。 良好的扩展性。 容易维护。 容易维护。 快速的开发时间
自定义标记库组成
1. 标记处理器(实现自定义标 标记处理器( 签的Java类文件) 类文件) 签的 类文件 2. 标记库描述符(TLD文件) 标记库描述符( 文件) 文件 3.应用标记的 应用标记的JSP页面 应用标记的 页面
<%@ taglib uri=“uri” prefix=“标识符 ” %> 标识符
说明: 说明: • uri:引用唯一识别的 :引用唯一识别的TLD。 。 • prefix: 定义区分不同标记库中标记的方法,避免 定义区分不同标记库中标记的方法, 不同标记库中标记重名引起的冲突。(由于prefix 。(由于 不同标记库中标记重名引起的冲突。(由于 区分不同标记库的,属性值可随意赋值) 区分不同标记库的,属性值可随意赋值)
JSP JSP自定义标记
自定义标记
JSP自定义标记可以看成是对 自定义标记可以看成是对JSP 自定义标记可以看成是对 标准动作标记的一种扩展。 标准动作标记的一种扩展。 自定义标记是用户定义的以XML形 形 自定义标记是用户定义的以 式表示的JSP语言元素。 语言元素。 式表示的 语言元素
自定义标记
程序:HelloTag.java
建立带属性的标记
自定义标记可以有自己的属性。 自定义标记可以有自己的属性。自定义标记 通过属性来动态接收页面传递来的信息。 通过属性来动态接收页面传递来的信息。属 性一般在开始标记中定义, 性一般在开始标记中定义,语法为 : <开始标记 属性 属性值 开始标记 属性=“属性值 属性值”> 属性的作用相当于自定义一个参数, 属性的作用相当于自定义一个参数,它影响 着标记处理器的行为。 着标记处理器的行为。
1. 标记处理器
创建自定义标记之前, 创建自定义标记之前,需创建 标记处理程序。 标记处理程序。 标记处理程序: 标记处理程序:一个执行自定 义标记操作的java对象。 对象。 义标记操作的 对象
2、标记库描述符(TLD文件)
标记库描述符是一个简单的xml文件,记录 文件, 标记库描述符是一个简单的 文件 标记处理器的属性、信息和位置等信息。 标记处理器的属性、信息和位置等信息。 Web容器通过标记库描述符来得知从哪里及 容器通过标记库描述符来得知从哪里及 如何调用一个标记库。 如何调用一个标记库。 标记库描述符文件必须以.tld为后缀, 标记库描述符文件必须以 为后缀,保存在 为后缀 WEB-INF目录中或它的子目录中。 目录中或它的子目录中。 目录中或它的子目录中
页面。 (3)编写应用标记的 )编写应用标记的JSP页面。 页面
页面使用自定义标记, 在jsp页面使用自定义标记,应用 的taglib 页面使用自定义标记 应用jsp的 标记指定其标记库(注意: 在使用此tag 标记指定其标记库(注意:taglib在使用此 在使用此 标记之前声明)。 标记之前声明)。
(1)编写标记处理器。 )编写标记处理器。 简单标记的标记处理器必须继承 javax.Servlet.jsp.tagext. TagSupport接口 接口
方法 int doStartTag( ) throws JSPException int doEndTag( ) throws JSPException Tag getParent()/ void setParent(Tag t) void release( ) 作用 处理开始标记 处理结束标记 获得/设置标记的父标记 获得 设置标记的父标记 释放获得所有资源
自定义标记的表示和分类
(1)标记名称。标记名称由两部分组成: )标记名称。标记名称由两部分组成: 前缀,用来区分不同标记库, 前缀,用来区分不同标记库,不同的标 记库具有不同的前缀;后缀, 记库具有不同的前缀;后缀,用来区分 统一标记库中的不同标记。 统一标记库中的不同标记。前缀和后缀 之间以冒号隔开。 之间以冒号隔开。
taglib元素包含许多 元素,标记库中每个标 元素包含许多tag元素 元素包含许多 元素, 记都有一个tag元素 元素, 元素用于将自定义标 记都有一个 元素,tag元素用于将自定义标 记映射到它们的自定义标记处理程序。 记映射到它们的自定义标记处理程序。
标记的信息 标记的信息 属性名称 name tag-class body-content display-name attribute 描述 标记唯一名称 标记处理程序类名 内容类型 可选的标记库显示名称 标记属性信息
(2)编写自定义标记库的描述文件 )编写自定义标记库的描述文件TLD
TLD文件列出了从标记名到标记处理程序的映射。 文件列出了从标记名到标记处理程序的映射。 文件列出了从标记名到标记处理程序的映射 大多数据在JSP页转换时使用。TLD文件通常保存 页转换时使用。 大多数据在 页转换时使用 文件通常保存 目录中, 中声明。 在WEB-INF目录中,并在web.xml中声明。 目录中 中声明 TLD文件的根元素是 文件的根元素是taglib。taglib描述一个标记 文件的根元素是 。 描述一个标记 标记处理程序对。 库,即一组标记/标记处理程序对。 即一组标记 标记处理程序对
相关文档
最新文档