什么是EL表达式?
EL(Expression Language)表达式是一种简化JSP页面内Java代码的表达式语言。它借鉴了JavaScript和XPath的表达式语言,提供了在JSP中简化表达式的方法,目的是为了尽量减少JSP页面中的Java代码,使得JSP页面的处理程序编写起来更加简洁,便于开发和维护。
EL表达式的语法非常简单,所有EL表达式的格式都是以“${}”表示。在JSP中访问模型对象是通过EL表达式的语法来表达的,这意味着从域对象中获取数据,然后将数据展示在页面上。不过,需要注意的是,EL表达式只能读取数据,不能修改数据,并且不能在Java代码块中定义。
此外,EL表达式的自动转类型和四大域读取数据的特性也使得它在处理动态网页时非常方便。当四大域内中有相同属性名时,EL表达式会从最小范围的域依次往最大域查找,找到相关内容后将会停止查找,并显示查找到的第一条数据。
结论:
EL 表达式主要是代替 jsp 页面中的表达式脚本在 jsp 页面中进行数据的输出,并简化jsp页面语句。
表达式格式:
- EL 表达式的格式是:${表达式}
- EL 表达式在输出 null 值的时候,输出的是空串。
- jsp 表达式脚本输出 null 值的时候,输出的是 null 字符串(如果要输出空串,需要进行三元运算符判断)
<body>
<%
request.setAttribute("key","hello,El表达式");
%>
jsp表达式脚本的输出方式:<%=request.getAttribute("key")==null?"":request.getAttribute("key")%><br/>
EL表达式的输出方式:${key}
</body>
EL 表达式搜索域数据的顺序
EL 表达式主要是在 jsp 页面中输出域对象中的数据。
当四个域中都有相同的 key 的数据的时候,EL 表达式会按照四个域的从小到大的顺序去进行搜索,找到就输出。
<body>
<%
//往四个域中保存相同的key的数据
request.setAttribute("key","request");
session.setAttribute("key","session");
application.setAttribute("key","application");
pageContext.setAttribute("key","pageContext");
%>
${key}
</body>