1. EL 表达式
1.1. EL 表达式
1.1.1. 为什么需要 EL 表达式和 JSP 标签
JSP 的产生在一定程度上将 Servlet 中负责表现的功能抽取了出来,但 JSP 页内
嵌入的 Java 代码也破坏了页面中负责表现的页面结构,特别是当运算逻辑稍微复杂
一点的话,那么 JSP 页面中大量的 Java 代码增加了页面维护的难度。所以使用简单
的标签来表现复杂的逻辑以及使用简单的形式表现运算的关系就是 EL 表达式和 JSP
标签出现的原因。
1.1.2. 什么是 EL 表达式
一套简单的运算规则,用于给 JSTL 标签的属性赋值,也可以直接用来输出而脱
离标签单独使用。
1.1.3. EL 表达式的作用
EL(Expression Language)是从hJavaScript脚本语言得到启发的一种表达
式语言,它借鉴了hJavaScript多类型转换无关性的特点。在使用hEL从hscope中得
到参数时可以自动转换类型,因此对于类型的限制更加宽松。hWeb服务器对于hreq
uest请求参数通常会以hString类型来发送,在得到时使用的hJava语言脚本就应该
是 request.getParameter(“XXX”),这样的话,对于实际应用还必须进行强制类
型转换。而hEL就将用户从这种类型转换的繁琐工作脱离出来,允许用户直接使用 EL
表达式取得的值,而不用关心它是什么类型
1.1.4. 访问 Bean 属性
在 JSP 页面中经常要输出系统定义的对象的属性,而按照以往的写法需要自己去
对象域中获取、转换再输出,使用 EL 表达式可以非常明显的简化过程。
Bean:指的是一个公共的类,按照固定的方式提供属性的 get/set 访问方式。
针对这种特殊类型的属性访问使用 EL 表达式实现有两种方式,如下。
1.1.5. 方式一:${对象名.属性名}
${user.name}
执行的过程为:从 pageContext、request、session、application 中依次查
找绑定名为“user”的对象,找到后调用“getName”方法,将返回值输出
假定在 session 中绑定了一个对象,如下:
1. User obj = new User(1,“胡萝卜”);