英文名Expression Language表达式语言
${变量名}
这是一个跳转操作,执行完之后网址不会发生改变
由咱们之前的截图我们可以看出来,上下两种方法输出的结果是一样的,而第一种和明显比第二种复杂许多,所以咱们也就应该晓的了该表达式的存在的含义
可以非常方便的取出域对象(page,request,session,application)中的数据,但前提是一定要先setAttribute,也就是说EL只是在简化get操作
而这四个的优先级和存储范围正好相反
而在${变量名}里面的变量名就是setAttribute对应的key值{“key”,“数据”}
当然如果我们不想按他规定的来的话,
咱们可以在数据的前面加上域对象Scope.key 这样咱们就取的是该域对象的数据了
掉用一个类里面的方法这样输出的话就是输出这个数据的hash值和全类名(未设计tostring方法)
设计了之后就会输出信息
ei表达式只可以在jsp里面使用
访问到的是属性里面的get方法(ei)
数据级联
<% String name = (String) request.getAttribute("name"); User user=new User(12,"刘同人",44.56); pageContext.setAttribute("user",user); %> <hr/> <table> <tr> <th>编号</th> <th>姓名</th> <th>成绩</th> </tr> <tr> <th>${user.id}</th> <th>${user.name}</th> <th>${user.score}</th> </tr> </table>
本质是调用tostring方法
这样子也是一个意思
el可以执行表达式
&& || ! <,> ==
${num1>num2}
返回true或false
可以使用and代替&&,但是必须留空格
&& and
|| or
! not
== eq
!= ne
< lt
> gt
<= le
>= ge
empty (变量为null,string的长度为0,size为0的集合)【返回true或者false】加个not就反回来了