EL表达式(Expression Language),主要功能是用来获取数据并显示,也可做算术和逻辑运算,与传统的JSP标签相比,使用起来,更加方便,代码更加简洁,极力推荐使用,本文将逐一介绍EL表达式的各个功能,以及自定义EL表达式。
一、表达式基本语法
1、EL表达式语法规则
<%
User user = new User();
User parent = new User();
user.setId(10001);
user.setName("小耳朵");
parent.setId(10002);
parent.setName("大耳朵");
List<String> list = new ArrayList<String>();
list.add("打球");
list.add("上网");
user.setHobby(list);
user.setParent(parent);
request.setAttribute("user",user);
%>
注:下面的测试代码都是基于这些数据来进行的。
1、语法规则
${user.name}-${user["name"]}-${user["parent"].name}-${'常量'}
-${user.parent["name"]}-${user.hobby[0]}-${user["hobby"][1]}<br>
<!-- 小耳朵-小耳朵-大耳朵-常量 -大耳朵-打球-上网 -->
规则为:${表达式}
2、禁用、启用EL表达式
不同版本的JSP可能会不支持EL表达式,所以如果发现页面中的EL表达式没有作用,可以在文件顶部加上这行代码
<%@ page isELIgnored="false|false" %>
<!-- false:启用EL,true:禁用EL -->
这种方式只对单个页面起作用,若想禁用或启用所有JSP页面中的EL表达式,则可以在web.xml中加上这条配置,两个地方同时配置时,页面中的配置高于web.xml中的配置。
<jsp-config>
<jsp-property-group>
<url-pattern>*.jsp</url-pattern>
<el-ignored>true</el-ignored>
</jsp-property-group>
</jsp-config>
另外,若想单次禁用EL,可以在$前面加上转义字符\即可
2、单次禁用EL
ID:${user.id} -
Name:\${user.name}<br>
<!-- ID:10001 - Name:${user.name} -->