
山东程子末军 SHANDONG UNIVERSITY OF 第七章 表达式语言(EL) 2016年4月 计 机学 院 J2EE WEB
J2EE WEB 计 算 机 学 院 第七章 表达式语言(EL) 2016年4月

归本程王太军 HANDONG UNIVERSITY OF TECIINOLOQ 主要内容 口EL的概念和语法介绍 口常量、操作符 口变量 口隐含对象 口使用EL和JSTL开发应用程序 计 算 机 学 院 J2EE WEB
J2EE WEB 计 算 机 学 院 2 主要内容 ❑EL的概念和语法介绍 ❑常量、操作符 ❑变量 ❑隐含对象 ❑使用EL和JSTL开发应用程序

归东理子末军 SHANDONG UNIVERSITY OF TECIINOLOGY 7.1表达式语言一概念 口表达式语言(EL)是JSP的一种计算和输出Java对象的简 单语言,简化了对象的输出。形式为:${.} 口EL可以和STL结合使用,简化页面,增加代码可读、或 维护性。 ▣JSP2.0(Servlet?2.4)版本以上可以使用EL。 ▣为了兼容JSP的低版本,可以设置 来屏蔽解析EL表达式。 EL的特点 计 算 有可获得的 有嵌套属性,可 可以执 扩展函数可以和 机 JAVA类的静态方 可以访问JSP 名称空间 访问集合对象 行运算 法映射 的隐含对象 学 院 J2EE WEB
J2EE WEB 计 算 机 学 院 3 7.1 表达式语言——概念 ❑ 表达式语言(EL)是JSP的一种计算和输出Java对象的简 单语言,简化了对象的输出。形式为:${ . } ❑ EL可以和JSTL结合使用,简化页面,增加代码可读、或 维护性。 ❑ JSP2.0(Servlet2.4)版本以上可以使用EL。 ❑ 为了兼容JSP的低版本,可以设置 来屏蔽解析EL表达式。 EL 的特点 有可获得的 名称空间 有嵌套属性,可 访问集合对象 可以访问JSP 的隐含对象 可以执 行运算 扩展函数可以和 JAVA类的静态方 法映射

归东程王太军 HANDONG UNIVERSITY OF TECIINOLOQ EL简介 口语法:${.} 口示例: 口$“Hello World'}/输出字符串常量 ▣$3+2} /输出3+2的结果一算式 ▣${user.name} /输出user对象的name属性值,即访问对象 user的getName()方法以得到name成员的值 ▣${user[“name"]}/同上 ▣${sessionScope[“user"].name} 同上 计 算 口${Iist[1]} /访问ist对象的第二项 机 ▣${map[key']} ∥访问map指定键的值 学 院 J2EE WEB
J2EE WEB 计 算 机 学 院 4 EL简介 ❑语法: ${ . } ❑示例: ❑${“Hello World”} //输出字符串常量 ❑${3+2} //输出3+2的结果——算式 ❑${user.name} //输出user对象的name属性值,即访问对象 user的getName()方法以得到name成员的值 ❑${user[“name”]} //同上 ❑${sessionScope[“user”].name} //同上 ❑${list[1]} //访问list对象的第二项 ❑${map[“key”]} //访问map指定键的值

归本理子末星 $3+2} 程序举例 $"HelloWorld"} list1.add("456"); list1.add("789"); $(list[O]}$(list[1]}$(list[2]) request.setAttribute("list",list1); Map map1=new HashMap(); $(map["name"]}$(map["age"])$(map["city"]} map1.put("name","lili"); $(map.name)$(map.age)${map.city) map1.put("age",20); map1.put("city","zibo"); request.setAttribute("map",map1); 6 院 J2EE WEB
J2EE WEB 计 算 机 学 院 5 程序举例 ${3+2} ${"HelloWorld" } ${name} ${requestScope.name} ${requestScope["name"]} ${list[0]} ${list[1]} ${list[2]} ${map["name"]} ${map["age"]} ${map["city"]} ${map.name} ${map.age} ${map.city}

归本程王太军 HANDONG UNIVERSITY OF TECIINOLOQ EL中的有效表达式 口可包含:常量、操作符、变量调用(对象引用) 口常量: 口boolean类型:true或false ▣int类型:如:24、-45、567 ▣double类型: 如:1.89、4.567 口String类型 ▣null 口操作符: 计 口算术运算符:+-*/%div mod 算 ▣关系运算符:==eq!=negt=ge 机 口逻辑运算符:&&‖! and or not 学 院 口其他运算符:empty 条件运算符 ()运算符 J2EE WEB
J2EE WEB 计 算 机 学 院 6 EL中的有效表达式 ❑可包含:常量、操作符、变量调用(对象引用) ❑常量: ❑boolean类型:true或false ❑int类型: 如:24、-45、567 ❑double类型: 如:1.89、 4.567 ❑String类型 ❑null ❑操作符: ❑算术运算符:+ - * / % div mod ❑关系运算符:== eq != ne gt = ge ❑逻辑运算符:&& || ! and or not ❑其他运算符:empty 条件运算符 ()运算符

归东理子末军 SHANDONG UNIVERSITY OF TECIINOLOGY 操作符示例 true&&false$ftrue&&false } truellfalse$(truellfalse } 测试页 lfalse${!false } empty name$(empty request.setAttribute("name",username);%> empty password$fempty password) 运算符结果 14 div 3$(14 div 3 ) 3+4$3+4 14 mod 3$(14 mod 3 ) 43-98$43-98} 14 eq 3$(14 eq 3 ) 3*2.9$3*2.9} 14/6${14/6} 14 It 3${14 It 3 ) 14%4${14%4} 14 gt 3$(14 gt 3 ) 14==3${14==3ktd> 14 le 3$(14 le 3 ) 14!=3${14!=3td> 14 ge 3$(14 ge 3 ) 14≥3${14≥3} 14s3${14≤3} 14≥=3${14≥=3td> ${14s=3} el.jsp J2EE WEB
J2EE WEB 计 算 机 学 院 7 测试页 运算符结果 3+4${3+4 } 43-98${43-98 } 3*2.9${3*2.9 } 14/6${ 14/6} 14%4${ 14%4} 14==3${14==3 } 14!=3${14!=3 } 14>3${14>3 } 14${14 14>=3${14>=3 } 14${14 true&&false${true&&false } true||false${true||false } !false${!false } empty name${empty name } empty password${empty password} 14 div 3${14 div 3 } 14 mod 3${14 mod 3 } 14 eq 3${14 eq 3 } 14 lt 3${14 lt 3 } 14 gt 3${14 gt 3 } 14 le 3${14 le 3 } 14 ge 3${14 ge 3 } el.jsp

白东程子太军 HANDONG UNIVERSITY OF TECINOLOQY 执行结果 http://127.0.0.1:8080/JSPPrepare4/EL/al.jsp 运算符 结果 3+4 7 43-98 -55 3*2.9 8.7 14/6 2.3333333333333335 140%4 2 14==3 false 14!=3 true 14>3 true 14=3 true 14<=3 false true&&false false true false true !false true empty name false empty password true 14 div 3 4.666666666666667 计 14 mod 3 2 14eq3 false 算 141t3 false 机 14gt3 true 学 141e3 false 14ge3 true 院 8 J2EE WEB
J2EE WEB 计 算 机 学 院 8 执行结果

山东理子末军 SHANDONG UNIVERSITY OF TECIINOLOGY 7.1表达式语言 口通过EL,可以方便地访问JavaBean中的属性. 口简单举例一访问JavaBean中的属性 用户名: 密码: 计 算 机 User_Form.jsp 学 院 9 J2EE WEB
J2EE WEB 计 算 机 学 院 9 7.1 表达式语言 ❑通过EL,可以方便地访问JavaBean中的属性. ❑简单举例——访问JavaBean中的属性 用户名: 密码: User_Form.jsp

归东程子末军 HANDONG UNIVERSITY OF TECIINOLOQ 访问JavaBean中的属性举例 package bean; public class UserBean private String userName; private String userPassword; public String getUserName(){ return userName; public void setUserName(String userName){ this.userName userName; public String getUserPassword(){ return userPassword; 3 计 public void setUserPassword(String userPassword){ 算 this.userPassword =userPassword; 机 }} 学 院 UserBean.java 10 J2EE WEB
J2EE WEB 计 算 机 学 院 10 访问JavaBean中的属性举例 package bean; public class UserBean { private String userName; private String userPassword; public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } public String getUserPassword() { return userPassword; } public void setUserPassword(String userPassword) { this.userPassword = userPassword; } } UserBean.java