表达式语言
表达式语言(Expression Language,EL)
JSP2.0新增的特性,它是一种可以在JSP页面中使用的数据访问语言。
主要目标是使动态网页的设计、开发和维护更加容易。网页编写者不必懂得Java编程语言,也可以编写JSP页面。
EL具有自己的运算符、语法和保留字。
表达式语言的调用
使用形式:${expression}
以$开头,后面是一对大括号,括号里面是合法的EL表达式。
出现位置:
可以出现在JSP页面的模板文本中,也可以出现在JSP标签的属性值中,只要属性允许常规的JSP表达式即可。
在JSP模板文本中使用EL表达式:
<ul> <li>学号:${student.id }</li> <li>姓名:${student.name }</li> </ul>
在标准动作的属性中使用EL表达式:
<jsp:include page="${expression1 }"/>
<c:out value="${expression2 }"/>
表达式语言的功能
1、提供一组简单的运算符。
可以完成算术、关系、逻辑、条件和空值检查运算。
2、对作用域变量的方便访问。
PageContext、HttpServletRequest、HttpSession和ServletContext
3、对JavaBeans对象访问的简单表示。
<jsp:getProperty property="name" name="student"/>
${student.name }
4、对集合元素的简单访问。
${variable[indexOrKey] 数组、List对象、Map对象等。
5、对请求参数、Cookie和其他请求数据的简单访问。
访问Accept请求头:${header.Accept}
6、提供了在EL中使用Java函数的功能。
EL中不能定义和使用变量,也不能调用方法,但可以通过标签的形式使用Java语言定义的函数。
使用EL运算符
EL作为一种简单的数据访问语言,提供了一套运算符,这些运算符与Java语言中使用的运算符类似,但在某些细节上有些不同。
1、算术运算符
'/' ---- div
'%' ---- mod
${"16" * 4} 结果为64,字符串被转换成整数。
${a / 4} 结果为0.0,a没有定义,它的默认值为0.
${"a" / 4} 将产生编译错误,字符串"a"不能和整数运算。
2、关系与逻辑运算符
"==" ---- eq 相等
"!=" ---- ne 不相等
"<" ---- lt 小于
">" ---- gt 大于
"<=" ---- le 小于等于
">=" ---- ge 大于等于
&& ---- and 逻辑与
|| ---- or 逻辑或
! ---- not 逻辑非
3、条件运算符
expression ? expression1 : expression2
4、empty运算符
${empty expression} 空则为True。
5、属性与集合元素访问运算符
点号(.)运算符:${param.username}
方括号([])运算符:${param["username"]}
区别:点号方便,方括号强大(有时候键或值有其它特殊字符是点号访问不了)。
访问作用域变量
在Servlet中使用setAttribute()将一个变量存储到某个作用域对象上(HttpServletRequest、HttpSession及ServletContext),然后使用RequestDispatcher对象的forword()将请求转发到JSP页面。
使用EL表达式:${variable_name}
对该表达式,容器将依次在页面作用域、请求作用域、会话作用域和应用作用域中查找名为variable_name的属性。如果找到该属性,就调用它的toString()并返回属性值。如果没有找到,则返回空字符串。
若在不同的作用域中存储了变量名相同的变量,则可以在变量名前加上作用域的名称:${HttpSession.variable_name}

浙公网安备 33010602011771号