EL与JSTL.ppt_第1页
EL与JSTL.ppt_第2页
EL与JSTL.ppt_第3页
EL与JSTL.ppt_第4页
EL与JSTL.ppt_第5页
已阅读5页,还剩82页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第四章表达式语言和JSTL 主要内容表达式语言 EL JSP标准标签库 JSTL 4 1表达式语言 4 1 1表达式语言概述表达式语言 ExpressionLanguage EL 是JSP2 0规范中增加的 用于简化JSP页面各种表达式的语言 通过EL 页面设计者可以在不了解JSP或Java的情况下也能够实现动态页面 EL表达式可以应用于JSP模板文本中 也可以应用于各种标签 标准标签 自定义标签 中 4 1表达式语言 4 1 2表达式语言的语法EL语句的基本语法为 表达式 或 表达式 类似于JSP表达式元素 EL语句中的表达式值会被直接送到浏览器 在EL表达式中 可以使用字面量 运算符 对象引用以及函数调用 注意 EL语句不能嵌套使用 如 2 1 2 是错误的语句 4 1表达式语言 4 1 2表达式语言的语法字面量 表4 1EL字面量实例 4 1表达式语言 4 1 2表达式语言的语法运算符 表4 2EL运算符 4 1表达式语言 4 1 2表达式语言的语法内置对象 表4 3EL内置对象 4 1表达式语言 4 1 2表达式语言的语法内置对象 cookie的使用实例由于cookie的创建由服务器端完成 用于输出客户端信息的EL中并没有设置cookie的手段 不过访问cookie可以用 cookie cookie名 表达式 将读取Cookie的程序 代码3 18 用EL重写的结果如下 代码4 1cookie对象的使用 name cookie name value 4 1表达式语言 4 1 2表达式语言的语法内置对象 pageContext的使用实例 pageContext的使用EL隐含对象pageContext pageContext request queryString pageContext request queryString pageContext request requestURL pageContext request requestURL pageContext request contextPath pageContext request contextPath 代码4 2pageContext实例 4 1表达式语言 4 1 2表达式语言的语法内置对象 pageContext的使用实例 pageContext request method pageContext request method pageContext request protocol pageContext request protocol pageContext request remoteUser pageContext request remoteUser pageContext request remoteAddr pageContext request remoteAddr pageContext session id pageContext session id 代码4 2pageContext实例 4 1表达式语言 4 1 2表达式语言的语法内置对象 pageContext的使用实例 图4 1pageContext实例运行结果 4 1表达式语言 4 1 2表达式语言的语法内置对象 pageScope使用实例 Topic pageScope questions topic 代码4 3pageScope实例 4 1表达式语言 4 1 2表达式语言的语法内置对象 sessionScope使用实例 sessionScope address 代码4 4sessionScope实例 4 1表达式语言 4 1 2表达式语言的语法内置对象 param和paramValues的使用实例 姓名 密码 性别 男女年龄 10 2020 3030 4040 50 代码4 5param和paramValues实例html部分 4 1表达式语言 4 1 2表达式语言的语法内置对象 param和paramValues的使用实例 兴趣 看书玩游戏旅游听音乐看电视 代码4 5param和paramValues实例html部分 4 1表达式语言 4 1 2表达式语言的语法内置对象 param和paramValues的使用实例 图4 2param和paramValues实例htm部分运行界面 4 1表达式语言 4 1 2表达式语言的语法内置对象 param和paramValues的使用实例 EL隐含对象param paramValues姓名 param username 密码 param password 性别 param sex 年龄 param old 兴趣 paramValues habit 0 paramValues habit 4 代码4 6param和paramValues实例jsp部分 4 1表达式语言 4 1 2表达式语言的语法内置对象 param和paramValues的使用实例 图4 3param和paramValues实例jsp部分运行界面 4 2JSP标准标签库 主要内容4 2 1标准标签库概述4 2 2安装和使用JSTL4 2 3核心标签库4 2 4函数标签库4 2 5SQL标签库 4 2JSP标准标签库 4 2 1标准标签库概述标准标签库简称JSTL JSPStandardTagLibrary 目前最新的版本为1 1 2 它主要提供给JavaWeb开发人员一个标准 通用的标签函数库 Web程序开发人员能够利用JSTL和EL来开发Web程序 取代传统直接在页面上嵌入Java程序的做法 以提高程序可读性 维护性和方便性 4 2JSP标准标签库 4 2 2安装和使用JSTL将JSTL库jstl jar standard jar复制到Web应用根目录的WEB INF lib中 就可以在JSP网页中使用JSTL 在JSP网页中使用JSTL 首先应根据所用的功能 利用taglib指令元素指定网页中的JSTL标签前缀和对应的uri 如 4 2JSP标准标签库 4 2 2安装和使用JSTLJSTL应用实例 代码4 7JSTL实例 4 2JSP标准标签库 4 2 2安装和使用JSTLJSTL所提供的标签函数库主要分为五大类 核心标签库 Coretaglibrary I18N格式标签库 I18N capableformattingtaglibrary SQL标签库 SQLtaglibrary XML标签库 XMLtaglibrary 函数标签库 Functionstaglibrary 4 2JSP标准标签库 4 2 2安装和使用JSTL这五大类标签库的前缀和URI分别如下 表4 4JSTL5种标签库 4 2JSP标准标签库 4 2 3核心标签库核心标签库的主要功能包括基本输入输出 流程控制 迭代操作和URL操作 表4 5核心标签库的常用标签 4 2JSP标准标签库 4 2 3核心标签库标签用来显示数据的内容 与或 表达式 类似 第一种书写格式 第二种书写格式 输出标签体内容defaultvalue 4 2JSP标准标签库 4 2 3核心标签库标签假如value为null 会显示default的值 如果没有设定default的值 则会显示一个空的字符串 默认情况下 将 和 如果不想转换 只需将escapeXml属性为fasle 实例 有特殊字符 有特殊字符 escapeXml false 代码4 8标签实例 4 2JSP标准标签库 4 2 3核心标签库标签直接访问该文件 http 127 0 0 1 jstlcore index jsp 图4 4实例运行结果 1 4 2JSP标准标签库 4 2 3核心标签库标签指定参数访问 http 127 0 0 1 jstlcore index jsp data 123 图4 5实例运行结果 2 4 2JSP标准标签库 4 2 3核心标签库标签用来设置作用域变量或JavaBean的属性 第一种书写格式 将value值赋给变量varName第二种书写格式 将标签体内容赋给变量varNamevalue 4 2JSP标准标签库 4 2 3核心标签库标签第三种书写格式 将value赋给target对象 JaveBean对象 的propertyName属性第四种书写格式 将标签体内容赋给target对象的propertyName属性value如果target为null或没有set方法 则抛出异常 4 2JSP标准标签库 4 2 3核心标签库标签实例 1 1 3 5 var1 var2 var3 var4 var5 代码4 9标签实例 4 2JSP标准标签库 4 2 3核心标签库标签实例 图4 6实例运行结果 4 2JSP标准标签库 4 2 3核心标签库标签标签用于捕获标签体内发生的异常 书写格式 tagbody如果指定了var 则将异常信息存储到该变量中 否则只捕获异常 4 2JSP标准标签库 4 2 3核心标签库标签实例 1 1var1 var2 var3 代码4 10标签实例 4 2JSP标准标签库 4 2 3核心标签库标签实例 图4 7实例运行结果 4 2JSP标准标签库 4 2 3核心标签库标签标签用于实现if语句的作用 第一种书写格式 将逻辑表达式testCondition的值存储到varName变量中第二种书写格式 testCondition为true时执行标签体内容 可以是文字 JSP代码或HTML标记 tagbody 4 2JSP标准标签库 4 2 3核心标签库标签实例 welcome 代码4 11标签实例 4 2JSP标准标签库 4 2 3核心标签库标签实例 图4 8实例运行结果 4 2JSP标准标签库 4 2 3核心标签库 和标签这三个标签用于实现类似于if elseif else的执行控制 其中 choose标签是另外两种标签的父标签 when标签用test属性指定条件 4 2JSP标准标签库 4 2 3核心标签库 和标签实例 参数为1参数为2参数不是1和2 代码4 12等标签实例 4 2JSP标准标签库 4 2 3核心标签库 和标签 图4 9等标签实例运行结果 4 2JSP标准标签库 4 2 3核心标签库标签标签用于迭代包含多个对象的集合 功能类似于Java语言的 forvar set int i 1 2 3 4 5 6 7 8 9 10 for intj i System out print j 代码4 13Javafor语句实例 4 2JSP标准标签库 4 2 3核心标签库标签书写格式1 迭代集合众的所有元素标签体内容 4 2JSP标准标签库 4 2 3核心标签库标签书写格式2 迭代指定的次数标签体内容 4 2JSP标准标签库 4 2 3核心标签库标签实例1 的用法 item 代码4 14标签实例1 4 2JSP标准标签库 4 2 3核心标签库标签实例1 图4 10标签实例1运行结果 4 2JSP标准标签库 4 2 3核心标签库标签实例2 的四种属性 index s index count s count first s first last s last 代码4 15标签实例2 4 2JSP标准标签库 4 2 3核心标签库标签实例2 图4 11标签实例2运行结果 4 2JSP标准标签库 4 2 3核心标签库标签实例3 的用法 ValueSquare 代码4 16标签实例3 4 2JSP标准标签库 4 2 3核心标签库标签实例3 图4 13标签实例3运行结果 4 2JSP标准标签库 4 2 3核心标签库标签标签用于迭代字符串中由分隔符分割的各个子串 书写格式 tagbody 4 2JSP标准标签库 4 2 3核心标签库标签实例 item item 代码4 16标签实例2 4 2JSP标准标签库 4 2 3核心标签库标签实例 图4 11标签实例2运行结果 4 2JSP标准标签库 4 2 3核心标签库和标签标签用于导入基于URL的资源 除了能包含和自己同一个web应用的文件外 也可以包含不同web应用或者其他网站的资源 书写格式 可选的标签 4 2JSP标准标签库 4 2 3核心标签库和标签url的内容可以是与当前应用同一目录的文件 如 也可以是子目录下的文件 如 导入的内容可以是基于http协议的 也可以是基于ftp协议的 如或 4 2JSP标准标签库 4 2 3核心标签库和标签导入其他应用的内容时 需要通过context指定应用名 如 可以通过内嵌的一个或多个标签指定导入资源的参数 如果指定了var内容 所导入的内容只存到varName变量中 4 2JSP标准标签库 4 2 3核心标签库和标签实例1 的用法 代码4 17标签实例1代码 这是用导入的test text文件内容 代码4 18标签实例1导入的test txt文件内容 4 2JSP标准标签库 4 2 3核心标签库和标签实例1 图4 12标签实例1运行结果 4 2JSP标准标签库 4 2 3核心标签库和标签实例2 的用法 imported jsp中定义的session变量值 output1 代码4 19标签实例2cImport jsp代码 4 2JSP标准标签库 4 2 3核心标签库和标签实例2 cImport jsp传入的session变量值 input1 cImport jsp传入的param变量值 代码4 20标签实例2imported jsp代码 4 2JSP标准标签库 4 2 3核心标签库和标签实例2 图4 13标签实例2运行结果 4 2JSP标准标签库 4 2 3核心标签库标签标签用于构造一个url 如果有必要 该标签会重写url内容 以符合资源的服务器路径 参数等环境 书写格式 可选的标签 4 2JSP标准标签库 4 2 3核心标签库标签实例1 logoimage 代码4 21标签实例1代码 logoimage 代码4 22标签实例1运行网页html源文件 4 2JSP标准标签库 4 2 3核心标签库标签实例2 login 代码4 23标签实例2代码 login 代码4 24标签实例2运行网页html源文件 4 2JSP标准标签库 4 2 3核心标签库标签标签将客户端的请求重定向到另一个资源上 书写格式1 书写格式2 4 2JSP标准标签库 4 2 3核心标签库核心标签库应用实例用EL和JSTL实现FAQ程序 packagecom apress faq importjava util Iterator importjava util Vector publicclassFaqCategories privateVectorcategories newVector publicFaqCategories categories add Dates and Times categories add Strings and StringBuffers categories add Threading publicIteratorgetAllCategories returncategories iterator 代码4 25修改后的FaqCategories java 将空格直接用下划线替换 4 2JSP标准标签库 4 2 3核心标签库核心标签库应用实例用EL和JSTL实现FAQ程序 JavaFAQWelcomePageWelcometotheJavaFAQ ClickalinkbelowforanswerstoThegiventopic faq 代码4 26修改后的welcome jsp 4 2JSP标准标签库 4 2 4函数标签库函数标签库主要提供对字符串进行操作的各种函数 包括以下16种标签 intfn length string booleanfn contains string substring booleanfn containsIgnoreCase string substring booleanfn startsWith string prefix booleanfn endsWith string suffix intfn indexOf string substring Stringfn replace inputString beforeSubstring afterSubstring Stringfn substring string beginIndex endIndex 4 2JSP标准标签库 4 2 4函数标签库Stringfn substringBefore string substring Stringfn substringAfter string substring String fn split string delimiters Stringfn join string separator Stringfn toLowerCase string Stringfn toUpperCase string Stringfn trim string Stringfn escapeXml string 4 2JSP标准标签库 4 2 4函数标签库实例 Originaltext text Lowercasedtext fn toLowerCase text Substringbefore M fn substringBefore text M Foundsubstring CDEF fn escapeXml Replaced CDEF with fn escapeXml fn replace text CDEF 代码4 27函数标签实例 4 2JSP标准标签库 4 2 4函数标签库实例 图4 14函数标签实例运行结果 4 2JSP标准标签库 4 2 5SQL标签库SQL标签库提供了访问关系数据库基本的能力 可实现查询 插入 删除 更新以及事务处理等功能 要使用SQL标签库 应使用如下taglib指令 4 2JSP标准标签库 4 2 5SQL标签库标签标签用于指定数据库数据源 书写格式 4 2JSP标准标签库 4 2 5SQL标签库标签var是所建立的数据源名称 为下一步访问数据库准备 dataSource是 url driver user password 格式的数据源名称 如 dataSource部分也可以用url driver串指定 如 4 2JSP标准标签库 4 2 5SQL标签库标签对于MySQL数据库 其setDataSource标签的内容为 4 2JSP标准标签库 4 2 5SQL标签库标签对于MicrosoftSQLServer数据库 其setDataSource标签的内容为 4 2JSP标准标签库 4 2 5SQL标签库标签标签用于对数据库进行查询 书写格式1 没有标签体其中 sql部分是sql语句字符

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论