jsp标准标签库简析
作者:大果粒和小果粒 | 来源:互联网 | 2021-11-12 07:46
jsp开发者指定了JSTL,提供了一组统一的通用的自定义标签文件,并将这些文件组合在一起,形成了jsp标准标签库
一、JSTL简介 引入:在JSP以及javaBean中 ,当我们在网页中使用循环,或者使用对象方法连接数据库时,我们都不可避免的需要使用到jsp的脚本编制元素,其中嵌有大量的java代码,现在开发者想尽可能的避免使用jsp脚本编制元素,进一步将应用程序的显示层和业务层完全分离,更加有利于应用程序的分工协作,jsp开发者指定了 JSTL ,提供了一组统一的通用的自定义标签文件,并将这些文件组合在一起,形成了jsp标准标签库,即JSTL。 1) 定义:包含编写和开发JSP页面的一组标准标签 a) 特点:为开发者提供了一个无脚本环境,无需编写JAVA脚本 b) 包含 1. 核心标签库 2. SQL标签库 3. 国际化(I18N)与格式化标签库 4. XML标签库 c) 分类 : 两个版本 1. 使用 EL 2. 使用请求时表达式 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=”http://java.sun.com/jstl/core_rt” %> 关于上述语法使用的扩充: <%@ taglib prefix =”标签别名” uri =”标签库的位置“> 1. 标签别名常用c 2. 标签库的位置:(即uri的设置) a) 教材上:” http://java.sun.com/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. 4. xxxxx就是标签库中提供的各种功能,详述如下: 二、核心标签库-----core 或 c.tld a) 分类: 1. 通用标签:操作JSP页面创建的范围变量 2. 条件标签:操作条件运算 判断与处理 3. 循环标签:操作循环运算 b) 通用标签 1. 设置,删除,显示在JSP页面内创建的变量值或对象值 2. 变量的范围是由设置时的scope 属性决定 3. 用于设置变量或者对象属性的值 :注意: “变量值” 可以是 EL表达式 4. 用于动态显示数据(功能类似于EL) 1: 2: 注意:表达式 可以是 1》普通的常量值 2》输出已经设置的变量值:${变量的名称} 5. 用于删除创建的变量 a) (案例:演示上面几个标签) c) 条件标签 1. 提供条件运算, 两种类型: if choose 2. 语法 a) b) 。。。。。。。条件体 c) d) var 存放的是:结果为true 或 false e) 不能实现else 由下面的实现 3. 语法 a) i. ii.需要处理的语句1 iii. iv. v.需要处理的语句2 vi. vii. viii.需要处理的语句 ix. b) (案例 three.jsp) d) 迭代标签 1. 分两种: forEach forTokens 2. forEach 简单的应用 循环体 用于集合对象的访问 注意:如果没有设置begin,end将检索所有元素,step没设置默认为1 3. forTokens (与有区别,用于轮循一个字符串) (案例: 演示上面几个标签) 三、SQL 标签库---- sql.tld 一般的企业级的应用是离不开数据库操作的,在许多时候都需要在JSP页面中访问数据库,因此提供对数据库访问的支持就变的十分重要了,在JSTL中的SQL标记库就提供了一套可以对数据库进行访问,查询,更新等操作的标记,极大的方便了JSP页面中数据库访问 1、 作用:用于进行数据库的操作 2、 在JSP页面中加入标签库 <%@ taglib uri=“http://java.sun.com/jstl/sql_rt ” prefix=”sql” %> 3、 具体使用标记 a) 设置数据源 具体用法: b) 查询数据 具体用法: ① ② select 语句 操作获取的结果集 ${students.rowCount}可返回结果集中的数据行数 ${students.columnNames}可返回所有字段的集合 ${students.rowByIndex}返回结果集中某行的数据集合 c) 数据更新 具体用法: ① ② SQL语句 d) 事务应用 具体用法: 或者 其中上面的隔离级别: read_committed,read_uncommited,repeatable,serializable 注意:如果在事务中设置了dataSource属性,在里面的标记中就不需设置了。 e) 参数设置 ① 作用:在作查询或者数据操作时参数的设置 ② 使用:通常是做为和标记的子标记 案例: select * from student where stuage>? 四、国际化和格式化标签----fmt 或 fmt.tld 1、 作用:对数字和日期时间的输出进行标准化,解决中文乱码问题 2、 在jsp页面加入标签库 <%@ taglib uri=“http://java.sun.com/jstl/fmt_rt” prefix=”fmt” %> 3、 具体标签的使用 a) ① 作用:用于JSP页面的本地化 ② 使用: b) ① 作用:用于JSP页面数据的格式化 ② 使用: c) ① 作用:用于JSP页面日期的格式化 ② 使用: d) ① 作用:指定请求数据的编码方式 ② 使用: 例如: 一般地,也可这样使用: a) 创建好 属性文件 比如叫 len_zh .properties b) (zh为中文,en为英文,固定的,Y2课程里会讲到。) c) (len为自起名称) d) (属性文件为len_zh .properties) 注意 :国际化时,*.properties文件要放在classes目录下。
推荐阅读
在当前众多持久层框架中,MyBatis(前身为iBatis)凭借其轻量级、易用性和对SQL的直接支持,成为许多开发者的首选。本文将详细探讨MyBatis的核心概念、设计理念及其优势。 ...
[详细]
蜡笔小新 2024-12-27 12:17:16
在处理Java项目中的JAR包冲突时,我们遇到了JaxWsDynamicClientFactory被弃用的问题,并成功将其迁移到org.codehaus.xfire.client。本文详细介绍了这一过程及解决方案。 ...
[详细]
蜡笔小新 2024-12-25 18:48:34
探讨如何真正掌握Java EE,包括所需技能、工具和实践经验。资深软件教学总监李刚分享了对毕业生简历中常见问题的看法,并提供了详尽的标准。 ...
[详细]
蜡笔小新 2024-12-25 13:38:29
本文探讨了在Windows Server 2008环境下配置Tomcat使用80端口时遇到的问题,包括端口被占用、多项目访问失败等,并提供详细的解决方法和配置建议。 ...
[详细]
蜡笔小新 2024-12-24 19:21:28
探讨如何从数据库中按分组获取最大N条记录的方法,并分享新年祝福。本文提供多种解决方案,适用于不同数据库系统,如MySQL、Oracle等。 ...
[详细]
蜡笔小新 2024-12-24 12:30:56
本文详细介绍了如何将Struts和Spring两个流行的Java Web开发框架进行整合,涵盖从环境配置到代码实现的具体步骤。 ...
[详细]
蜡笔小新 2024-12-23 17:46:59
最近重新审视了新浪云平台(SAE)提供的服务,发现其已支持Python开发。本文将详细介绍如何利用Django框架构建一个简单的新浪微博应用,并分享开发过程中的关键步骤。 ...
[详细]
蜡笔小新 2024-12-26 13:36:52
本文详细介绍了 Java 中 org.eclipse.jface.viewers.ViewerCell 类的 getBackground() 方法,并提供了多个实际代码示例,帮助开发者更好地理解和应用该方法。 ...
[详细]
蜡笔小新 2024-12-25 21:36:44
本文介绍如何使用布局文件在Android应用中排列多行TextView和Button,使其占据屏幕的特定比例,并提供示例代码以帮助理解和实现。 ...
[详细]
蜡笔小新 2024-12-25 10:33:17
本文介绍了多个关于JavaScript的书籍资源、实用工具和编程实例,涵盖从入门到进阶的各个阶段,帮助读者全面提升JavaScript编程能力。 ...
[详细]
蜡笔小新 2024-12-24 16:36:52
本文介绍了Android开发中Intent的基本概念及其在不同Activity之间的数据传递方式,详细展示了如何通过Intent实现Activity间的跳转和数据传输。 ...
[详细]
蜡笔小新 2024-12-24 12:23:09
本文介绍如何通过 Android 的 Selector 实现按钮在不同状态下(如按压)的背景和文本颜色动态变化。我们将详细讲解实现步骤,并提供完整的代码示例。 ...
[详细]
蜡笔小新 2024-12-24 10:15:17
本文详细介绍超文本标记语言(HTML)的基本概念与语法结构。HTML是构建网页的核心语言,通过标记标签描述页面内容,帮助开发者创建结构化、语义化的Web页面。 ...
[详细]
蜡笔小新 2024-12-24 08:21:49
本文介绍了ArcXML配置文件的分类及其在不同服务中的应用,详细解释了地图配置文件的结构和功能,包括其在Image Service、Feature Service以及ArcMap Server中的使用方法。 ...
[详细]
蜡笔小新 2024-12-23 20:48:25
本文详细介绍如何利用已搭建的LAMP(Linux、Apache、MySQL、PHP)环境,快速创建一个基于WordPress的内容管理系统(CMS)。WordPress是一款流行的开源博客平台,适用于个人或小型团队使用。 ...
[详细]
蜡笔小新 2024-12-23 20:23:57