EL正如其名,是名副其实的”表达式语言“
我觉得表达式就是数据与算子的有序排列,其内容为算子对变量进行的操作。这样说来,表达式的基本功能可以概述为:
- 取得数据。这是EL表达式的基本功能,通过${}可以很方便地从Scope(page, request, session, application)中拿到数据。可以不标明Scope,会自动去找。如果有重复,也可以用添加相应的Scope前缀去找,如sessionScoope.a。注:Scope中的数据指request.setAttribute()方法设置到request中的数据。
- 运算符:EL可以支持五种运算符,也就说基本的运算符它都能支持。这些运算符既可以使用在java语言中的形式,也可以用英文表示,如lt,gt,ne,eq,and,or等。但测空运算符有些不一样,为empty a,如果a为空或不存在,则这个表达式的值为true,否则为false。
此外,还可以通过参数访问隐式对象的方式来取得request, response, session, servletContext中的数据。最常用的就是访问表单提交数据,主要有param,paramValues。使用方法可以如下:
姓名:${param.username}<br>
密码:${param.password}<br>
爱好:${paramValues.Habit[0]}
${paramValues.Habit[1]}
姓名和密码采用param对应单个值,爱好使用paramValues对应多个值。这相当于request.getParameter(String username)和request.getParameterValues(String name)方法。