一、介绍:
EL(Expression Language)可用来代替JSP中的各类脚本,提高编程的灵活度,简化代码的编写。
二、EL的限制:
不能声明变量,需要使用JSTL或者JavaBean Action设置变量。
三、EL的标准格式:
美元符号前缀加一个大括号:${}
说明:当JSP编译器在属性中见到"${}"格式后,会产生代码来计算这个表达式,并产生一个替代品来代替表达式的值。
四、停用EL表达式的方法:
如果想停用EL表达式,使用page指令将isELIgnored属性值设为true
<%@ page isELIgnored = "true" %>
添上上述代码后,EL表达式就会被忽略,反之如果设为false,EL表达式就有效。
五、EL表达式中与正常数学操作符有微小差异处的个人总结:
(1)测试是否相等: == 或 eq(equal to)
(2)测试是否不等: != 或 ne(not equal to)
(3)测试是否小于: < 或 lt(less than)
(4)测试是否大于:> 或 gt(greater than)
(5)测试是否小于等于:<= 或 le(less than or equal to)
(6)测试是否大于等于:>= 或 ge(greater than or equal to)
(7)取模:% 或 mod
(8)除: / 或 div
(9)空:empty
(10)取反:! 或 not
六、举个栗子(实现通过EL表达式获取对象的参数):
在jsp页面的body中编入代码:
<%-- 此处的class是全限定类名--%>
<jsp:useBean id="tsStudent" class="guida.day06.Student">
<jsp:setProperty name="tsStudent" property="stuName" value="彦秉成" />
</jsp:useBean>
<%-- EL表达式: (Experssion Language) --%>
EL表达式的值:${tsStudent.stuName}
<br>
<%
String[] names = {"彦秉成","腾从戎","古草"};
pageContext.setAttribute("names",names);
%>
${names[0]}
${names[1]}
${names[2]}
${names[3]}
<%-- 下标虽然超了,但是并不会报数组下标越界的错误,超了的下标会被忽略--%>
<%-- 使用 ${} -> 可避免null显示、避免异常的出现}--%>
运行结果: