《第十一章 表达式语言EL和标准标签库JSTL.docx》由会员分享,可在线阅读,更多相关《第十一章 表达式语言EL和标准标签库JSTL.docx(8页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、本章目标l 熟悉 EL 的基本用法l 熟悉 JSTL 的常用标记l 能编写简单的自定义标签本章考核l 用 JSTL 和 EL 实现 MVC 的查询分页功能l 用自定义标签实现分页工具条知识点 1:EL Expression Language 以$起始、以结尾 ,例如$sessionScope.user.sex EL 语法比传统 jsp 语法简洁,方便1.1 、.和运算符$sessionScope.user.sex和$sessionScope.usersex 可以混合使用在以下两种情况下,这两种表示方法是有差异的l 当属性名称中存在特殊字符,如.或者-就要使用 例如:$sessionScope.
2、usermy-namel 如果动态取值,例如$sessionScopt.userdata 此时 data 是个变量变量自动搜索顺序属性范围Page Request Session Application在 EL 中的隐含对象名称pageScope requestScope sessionScope applicationScope1.2 、EL 变量 $变量名1.3 、自动类型转换$param.count+20等价于String strCount = request.getParameter(count);int count = Integer.parseInt(strCount); coun
3、t = count+20; 1.4、EL 保留字【and、or、no、instanceof 】 【 eq、ne、lt、empty 】【 gt、le、ge、div】 【true、false、null、mod】1.5 、EL 隐含对象pageContext、pageScope、requestScope、sessionScope、applicationScope、Param【request.getParameter】、paramValues、header、headerValues、cookie、initParam【ServletContext.getInitParameter】$pageContex
4、t的常用部分$pageContext.request.queryString请求参数字符串$pageContext.request.requestUrl取得请求的 URL$pageContext.request.contextPath取得 web 应用的名称$pageContext.request.method取得请求方式 post、get$pageContext.request.protocol请求的 Http 协议(HTTP/1.1 HTTP/1.0)$pageContext.request.remoteUser取得用户名称$pageContext.request.remoteAddr取得
5、用户的 ip 地址$pageContext.session.new判断 session 是否为新的$pageContext.session.id取得 session 的 id用户名:张三$param.username $param.sex性别:男兴趣兴趣:旅游、阅读、影视$s 学历:高中1.6 、EL 算术运算符 + - * /或 div %或 mod1.7 、EL 关系运算符=或 eq 、!=或 ne、或 gt、=或 ge1.8 、EL 逻辑运算符 &或 and |或 or !或 not1.9 、EL 其他运算符 empty 判断是否为空$empty param.username$A?B:C
6、 $empty param.pcode?1:param.pcode()优先权1.10 、EL 自定义函数知识点 2:JSTL javaServet Pages Standard Tag Library 主要提供给 javaweb 开发人员一个标准通用的标签函数库l Web 程序开发人员能够利用 JSTL 和 EL 来开发 Web 程序,取代传统直接在页面上嵌入 java 程序代码段的做法,以提高程序可读性、维护性和方便性l JSTL 五大标签函数库1、核心标签库 2、L18N 格式标签库 3、SQL 标签库 4、XML 标签库 5、函数标签库l 在 jsp 页面中使用引入 JSTL 标签库 如
7、果没有声明指令,将无法使用 JSTL 的核心标签库的功l 另外 JSTL 也支持 EL 语法:n Jsp 语法:n 传统 JSTL:c:out value= escapeXML=false/n JSTL 搭配 ELl 引入标签库的方式:新建 webproject 的时候,选择 J2EE4 下的 AddJSTL 复选框2.1 、核心标签库(c 标签)组成:基本输入输出、流程控制、迭代操作和 Url 操作分类功能分类标签名称core表达式操作流程控制 迭代操作URL 操作out、set、remove、catchif、 choose、when、otherwise forEach、forTokensi
8、mport、param、url、redirect2.1.1 、 显示数据的内容,就像是一样语法:c:out value=$username escapeXml=true| false是否转换字符,如注:EL 项为 Y 表示该属性的内容可以使用 EL 表达式,写成 attribute=$表达式,N 则反之范例: c:out value=特殊字符/ c:out value=特殊字符 escapeXml=true/ 2.1.2、将变量的存储到 JSP 范围或 javaBean 的属性中语法: 范例: 将 2 存储在 request 范围内 假若 number 为 null,则移出 request 范
9、围的变量 number 假若 username 为空,则赋值 null 给 username 2.1.3、具体内容范例:你好 Admin 先生 执行结果为$condition2.1.4、本身只当做和的父标签语法:本体内容(和) 2.1.5、可以将集合中的成员一次浏览一遍语法 1:迭代一集合对象之所有成员语法 2:迭代指定次数c:forEach var=用来存放当前循环的成员 items=集合名称varStatus=用来存放单签指到相关成员 begin=开始位置 end=结束位置 step=每次迭代的间隔数本体内容本体内容 varStatus 属性Index:当前成员的索引序号 0 开始Coun
10、t:已经循环过的成员总数从 1 开始First:是否第一个成员、last:是否最后一个成员范例一:循环 List范例二:循环 Map范例三:循环数组范例四:varStatus 的用法2.1.6、用来浏览一字符串的所有成员,其成员由定义符号分开案例 1:单一分隔符: $str 案例 2:多个分隔符: $str 2.2 、l18N 格式标签库(fmt 标签) 国际化的,一共 12 个,被分成两类国际化核心标签 格式化标签: 2.2.1、用于日期对象格式化为任意格式的字符串语法:案例 1:格式化日期为 yyyy-MM-dd 格式案例 2:yyyy-MM-dd HH:mm:ss2.2.2、用于格式化数
11、字为制定字符串语法:案例 1:价格保留到小数点后 2 位案例 2:以财务格式显示金额“1,888.90”2.3 、自定义标签Step1 创建标签的处理类(Tag HandlerClass) 要求 extens SimpleTagSupportStep2 创建标签库描述文件(Tag Library Descrptor File)*.tld 在 web.xml 文件下step3、在 JSP 文件中引入标签库开发自定义标签需要以下三个步骤来操作:案例 1:用 JSTL 和 EL 实现按类别查询图书JSTL 使用: 导入 置于 JSP 页面顶部。prefix 属性可任意书写, uri 属性为固定写法。
12、1.用来遍历集合与数组。参数 var 为自定义参数 ,参数 items 为要循环遍历的容器,该标签可以循环任意数组, 以及 MAP,COLLECTION 接口下的容器。例如:$product.p_name $product.p_value 购买EL 表达式中$requestScope的含义是在 request 作用域下寻找products 。测试删除注册登录欢迎您 , $sessionScope.user_info.name修改个人信息$product.p_value 购买目标l EL 的基本使用l JSTL 的常用标记知识点 1:EL概念:Expression Languagejsp 语法和
13、 html 语法分离基本使用:以$开始、结束特点:与传统的 jsp 比较,el 语法更加简洁,方便特殊符号:. 隐含内置对象JSP 内置对象EL 隐含内置对象RequestrequestScopesessionsessionScopeapplicationapplicationScopepagepageScoperequest.getParameterparamrequest.getParameterValuesparamValues EL 表 达 式 的 灵 活 使 用 $ 属 性 名 Session.setAttribute(“aa”,”microsoft”);session 属性值App
14、lication.setAttribute(“bb”,”sun”);application 属性值El 表达式打印 3 种方式:$sessionScope.aa$sessionScope“aa”$aa【pageScoperequestScopesessionScopeapplicationScope 】$sessionScope.aa$applicationScopeaa$pageScope.aa$aa变量自动搜索顺序知识点 2:JSTL 标签 JavaServerPages standard 标准 tag 标签 library 库五大分类:核心标签库l18N 格式标签库 SQL 标签库 XM
15、L 标签库 函数标签库$aaJSTL 书写语法:会跟 EL 混合在一起,完善一个标记与 jsp 语法的分离JSTL 和 EL 作用:避开 jsp 语法代码,利用标签,增强程序的可读性Step1:引入标签库 注意:JavaEE4.0 需要手动添加 JavaEE5 自动带着 jstl 标签库Step2:使用标签c:XXX 标签输出基本字符串: 输出变量:循环标签JSTL 的使用步骤基本处理判断标签$i案例 1:表单提交并用 jstl 和 el 处理提交元素用户名:性别:男女学历:中学高中本科专科个人兴趣爱好:吃饭睡觉打豆豆个人描述:My JSP indexPost.jsp starting page用户名:$param.txtName 性别:$paramrbtSex 学 历 :$param.dropEdu 个人兴趣爱好:个人信息:$param.txtAInfo$i案例 2:更改 CRUD +分页留言板UpdateLw.jsp姓名:email: 主题: 内容:$lwobject.lwContentViewLw.jsp留言编号留言者姓名email主题内容更新删除$o.lwid$o.lwname$o.lwemail$o.lwSubject$o.lwContent更新删除当前是$abc.nowpage页 首页 上一页下一页 尾页
限制150内