课程提纲 口第一部分Java EE基础 口第二部分Java Web开发 ◆第6章EL(表达式语言)&JSTL(JSP标签库)&MWC EL (Expression Language) JSTL (JavaServer Pages Standard Tag Library) MVC (Model-View-Control) 口第三部分JSF框架 口第四部分EJB 口第五部分JPA 口第六部分SSH框架 JavaEE技术 1。西北农林升教大学信息工程学院本科生课程
课程提纲 第一部分 Java EE基础 第二部分 Java Web开发 ◆第6章 EL(表达式语言)& JSTL(JSP标签库)& MVC EL (Expression Language) JSTL (JavaServer Pages Standard Tag Library) MVC (Model-View-Control) 第三部分 JSF框架 第四部分 EJB 第五部分 JPA 第六部分 SSH框架 Java EE技术 •1 信息工程学院本科生课程
本讲目标 EL(表达式语言): ●EL的基本用法及相关概念 JSTL(JSP标准标签库): ●核心标签库、XML标签库、国际化标签库、SQL标签库、 函数标签库。 EL&JSTL&MVC 2。西北农林科大学信息工程学院本科生课程
❖ EL(表达式语言): ⚫ EL的基本用法及相关概念 ❖ JSTL(JSP标准标签库): ⚫ 核心标签库、XML标签库、国际化标签库、SQL标签库、 函数标签库。 本讲目标 EL&JSTL&MVC •2 信息工程学院本科生课程
EL是什么 EL是JSP2.0中新增的功能,可用于存取Java对象 的属性和方法而避免过多的Script|et代码。 基本语法:${expression] 。EL表达式以“$[”开始,以 “们”结束,中间的 expression为合法的表达式。当然对于后面提到的延 迟计算的EL表达式其为:#{express ion} ·,dSP中采用EL输出-“Hel-o-Wor+dl”-的示例代码: -${“He14o Wor ld”} 示例:教材p121-122 EL&JSTL&MVC 3。品北农林升大学信息工程学院本科生课程
❖ EL是JSP2.0中新增的功能,可用于存取Java对象 的属性和方法而避免过多的Scriptlet代码。 ❖ 基本语法:${expression} • EL表达式以 “${”开始,以 “}”结束,中间的 expression为合法的表达式。当然对于后面提到的延 迟计算的EL表达式其为: #{expression} • JSP中采用EL输出 “Hello World!”的示例代码: ${“Hello World!”} ❖ 示例:教材p121-122 EL是什么 EL&JSTL&MVC •3 信息工程学院本科生课程
EL表达式的特点 “EL表达式具有如下特点: 。EL表达式中可获得JSP页面的上下文对象pageContext (通过该对象可访问其他内置对象)及其他内置对象; ·EL表达式不仅可以访问一般变量,还可以访问 JavaBean中的属性、集合对象以及方法; ·EL表达式中可执行关系运算、逻辑运算和算术运算等; ·在L表达式中可以访问四种不同作用域的属性; ·EL表达式既可以与STL结合使用,也可以与 JavaScript语句结合使用; ·EL可以自动进行类型转换,不抛出空指针异常且将 nulI显示为空串(“”)。这样,JSP代码可以更为简洁。 EL&JSTL&MVC ·4。西北农林科大学信息工程学院本科生课程
❖ EL表达式具有如下特点: • EL表达式中可获得JSP页面的上下文对象pageContext (通过该对象可访问其他内置对象)及其他内置对象; • EL表达式不仅可以访问一般变量,还可以访问 JavaBean中的属性、集合对象以及方法; • EL表达式中可执行关系运算、逻辑运算和算术运算等; • 在EL表达式中可以访问四种不同作用域的属性; • EL表达式既可以与JSTL结合使用,也可以与 JavaScript语句结合使用; • EL可以自动进行类型转换,不抛出空指针异常且将 null显示为空串(“”)。这样,JSP代码可以更为简洁。 EL表达式的特点 EL&JSTL&MVC •4 信息工程学院本科生课程
即时计算与延迟计算 。EL表达式的两种计算方式: ·即时计算: √使用$U的EL表达式都是即时执行的; √通常用于只读的值表达式; √如:〈c:out value=“$sess ionScope.username}”/> 。延迟计算: √使用#们的EL表达式都是延时执行的; √可以是只读的值表达式,也可以是能读能写的值表达式,还可 以是方法表达式; √如: √在后面的SF中用到。在JSF的应用请求值阶段,如同即时计 算一样仅仅是访问customer(JavaBean)的name值;在更新 EL&JSTL&M 想买值阶段则将输入的新的值赠柔解装9学各这复职站生深 曾不同
❖ EL表达式的两种计算方式: • 即时计算: ✓使用${}的EL表达式都是即时执行的; ✓通常用于只读的值表达式; ✓如: • 延迟计算: ✓使用#{}的EL表达式都是延时执行的; ✓可以是只读的值表达式,也可以是能读能写的值表达式,还可 以是方法表达式; ✓如: ✓在后面的JSF中用到。在JSF的应用请求值阶段,如同即时计 算一样仅仅是访问customer(JavaBean)的name值;在更新 模型值阶段则将输入的新的值赋予给customer,这与即时计 算不同。 即时计算与延迟计算 EL&JSTL&MVC •5 信息工程学院本科生课程
值表达式与方法表达式 EL表达式的两种类型: ·值表达式:取值或赋值 √右值(rvalue)表达式与左值(Ivalue)表达式: √$通常都是rvalue.表达式。#)可以既是rvalue表达式,又 是Ivalue.表达式; 单引号亦可 √语法: 变量:$[object.propName}或${object[“propName”] 常量:${“text”] 表达式:${object.propName+number]} √范围:静态文本和标签属性(支持表达式与静态文本的混合) ·方法表达式:调用方法 √主要用于JSF,如处理组件生成验证数据等。用于标签属性中; √语法:#{object.method]或#{object[“method”] EL&JSTL&MVC ·6。品北农林教大学信息工程学院本科生课程
❖ EL表达式的两种类型: • 值表达式:取值或赋值 ✓右值 (rvalue) 表达式 与 左值 (lvalue) 表达式 : ✓${}通常都是rvalue表达式。#{}可以既是rvalue表达式,又 是lvalue表达式; ✓语法: 变量:${object.propName} 或 ${object[“propName”] 常量:${“text”} 表达式:${object.propName + number} ✓范围:静态文本 和 标签属性(支持表达式与静态文本的混合) • 方法表达式:调用方法 ✓主要用于JSF,如处理组件生成验证数据等。用于标签属性中; ✓语法:#{object.method} 或 #{object[“method”]} 值表达式与方法表达式 •6 信息工程学院本科生课程 单引号亦可 EL&JSTL&MVC
EL运算符 冬算术运算符: ·+,-,*,/或div,%或mod ”关系运算符: ·=或eq,I=或ne,《或1t,>或gt,=或1e,>=或ge ”逻辑运算符: ·&或and,I川或or,I或not ”条件运算符: ·条件表达式?计算表达式1:计算表达式2 冬空值判定运算符: 。empty 示例:教材p126-127 EL&JSTL&MVC ·7。西北农林升大学信息工程学院本科生课程
❖ 算术运算符: • +,-, * ,/或div,%或mod ❖ 关系运算符: • ==或eq,!=或ne,或gt,=或ge ❖ 逻辑运算符: • &&或and,||或or,!或not ❖ 条件运算符: • 条件表达式 ? 计算表达式1 : 计算表达式2 ❖ 空值判定运算符: • empty ❖ 示例:教材p126-127 EL运算符 EL&JSTL&MVC •7 信息工程学院本科生课程
EL中的保留字 用于运算: ·算术运算:div(),mod(%) ·关系运算:eq(e=),ne(I=),It(),gt(◇), Ie(《=),ge◇=) ·逻辑运算:and(&),or(),not(I), true(真),false(假) ·空值判定运算:empty【是否为空值?】 冬用于其他: ·nulI:空值判定【是否存在?】 ·instanceof:.判定对象是否为类的实例 示例:empty.与nulI对比 EL&JSTL&MVC 8。 西北农林科教大学信息工程学院本科生课程
❖ 用于运算: • 算术运算:div(/),mod(%) • 关系运算:eq(==),ne(!=),lt(), le(=) • 逻辑运算:and(&&),or(||),not(!), true(真),false(假) • 空值判定运算:empty【是否为空值?】 ❖ 用于其他: • null:空值判定【是否存在?】 • instanceof:判定对象是否为类的实例 ❖ 示例:empty与null对比 EL中的保留字 EL&JSTL&MVC •8 信息工程学院本科生课程
EL中的隐式对象 ”页面上下文对象: ·pageContext:可以访问JSP的内置对象; 冬作用域对象: pageScope,requestScope,sessionScope, appl icationScope:访问不同作用域范围的属性变量; 冬请求参数对象: ·param,paramValues:.访问提交请求的参数; ”请求环境对象: header.host等价于header Values.host[(0 ·header,headerValues,.cookie:访问请求环境信息; Web应用初始参数对象: 。initParam:获取Web应用的初始化参数的值。 示例:教材p129-130 EL&JSTL&MVC ·9。品北农林升大学信息工程学院本科生课程
❖ 页面上下文对象: • pageContext:可以访问JSP的内置对象; ❖ 作用域对象: • pageScope,requestScope,sessionScope, applicationScope:访问不同作用域范围的属性变量; ❖ 请求参数对象: • param,paramValues:访问提交请求的参数; ❖ 请求环境对象: • header,headerValues,cookie:访问请求环境信息; ❖ Web应用初始参数对象: • initParam:获取Web应用的初始化参数的值。 ❖ 示例:教材p129-130 EL中的隐式对象 •9 信息工程学院本科生课程 header.host 等价于 headerValues.host[0] EL&JSTL&MVC
EL的开启与禁用 ”开启与禁用EL有三种方法: 。使用“”禁用EL: \$expression] 。使用page指令: 。在web.xml文件中配置: *.jsp true false EL&JSTL&MVC ·10。西北农林科教大学信息工程学院本科生课程
❖ 开启与禁用EL有三种方法: • 使用“\”禁用EL: \${expression} • 使用page指令: • 在web.xml文件中配置: *.jsp true | false EL的开启与禁用 EL&JSTL&MVC •10 信息工程学院本科生课程