第7章EL表达式和JSTL0207
知识目标了解什么是EL表达式和JSTL标签库掌握EL中常见的隐式对象熟悉EL中的运算符熟悉JSTL标签库
思政目标课程突出培育求真务实、实践创新、精益求精的工匠精神培养学生严谨求实、吃苦耐劳、追求卓越等优秀品质树立心系社会并有时代担当的精神追求。
7.1EL表达式7.1.1认识ELEL是JSP2.0增加的技术规范,其全称是表达式语言(ExpressionLanguage)。EL语言的灵感来自于ECMAScript和XPath表达式语言。EL表达式语言是一种简单的语言,使用EL表达式,JSP页面可以不再使用任何的JSP声明、脚本和表达式,就可以轻松地访问应用程序的数据。EL表达式提供了在JSP中简化表达式的方法,目的是为了尽量减少JSP页面中的Java代码,使得JSP页面的处理程序编写起来更加简洁,便于开发和维护。EL表达式的语法非常简单,都是以“${”开始,以“}”结束的,具体格式如下:${表达式}
注意:其中,EL表达式写在JSP页面中,表达式一般是域对象的key。表达式必须符合EL语法要求。EL表达式代替JSP页面中表达式脚本进行数据的输出(只能获取数据,不能设置数据)。EL表达式主要是输出域对象中的数据,当四个域对象都有同一个key的值时,EL表达式会按照四个域对象的范围从小到大进行搜索,找到就输出,与四个域对象声明的先后顺序无关。关于EL语法的相关内容会在下面的小节进行介绍。7.1EL表达式7.1.1认识EL
使用JSP的标准动作可以简化JSP页面的开发,在操作JavaBean时,当JavaBean的属性属于简单的、基本的数据类型,如String类型时,能够实现类型的自动转换。如果JavaBean的属性类型不也是基本类型,而是Object类型,该怎么访问?现有如下案例:有一个学校类School.java,类中有老师teacher、学生student两个属性,而这两个属性分别是Teacher.java类和Student.java类对应的实例。部分代码如下所示。7.1.1认识EL
PublicclassSchool{privateTeacherteacher;privateStudentstudent;//getterandsetter方法……}7.1.1认识EL学校类School.java部分代码学生类Student.java部分代码PublicclassStudent{privateStringname;privateStringparentName;privateintage;//getterandsetter方法……}
%Schoolschool=(School)request.getAttribute(school);Studentstudent=(Student)school.getstudent();StringparentName=student.getparentName();%7.1.1认识EL如果想要获取School类型的属性student的parentName属性值,及获取学校里学生的家长姓名,只能在JSP页面中加入Java脚本来实现,关键代码如下所示。如果在学习了EL表达式后再来处理同样类型的问题,可以直接使用下面这行的代码来实现。${School.student.parentName}
7.1.1认识EL在EL表达式没有出现之前,开发JSP程序经常需要将大量的Java代码嵌入到JSP页面中,整体JSP页面看上去会异常凌乱,不易维护。使用EL表达式会使页面变得更加简洁。
在EL中提供了多种运算符,根据运算方式不同,EL中的运算符包括以下几种。1、点运算符(.)该运算符用于访问JSP页面中对象的属性,如JavaBean对象、List集合、Array数组等,其语法格式如下。${}上述语法格式中,表达式${}是访问user对象中的name属性。7.1.2EL中的运算符
2、方括号运算符([])该运算符用于访问JSP页面中对象的属性,与点运算符的功能相同。但当获取的属性名中包含特殊符号(非字母或数字),只能使用方括号运算符来访问,其语法格式如下。${user[“name”]}7.1.2EL中的运算符
3、算术运算符该运算符用于对整数和浮点数的值进行算术运算。如表7-1所示。表7-1算术运算符7.1.2EL中的运算符算是运算符说明举例结果+加${11+12}23-减${15-5}10*乘${2*5}10/或div除${10/2}或${10div2}5%或mod取模(取余)${10%2}或${10mod2}0
注意:使用算术运算符时,“-”既可以作为减号也可以作为负