EL表达式

EL表达式

Expression Language 表达式语⾔,替代 JSP ⻚⾯中数据访问时的复杂编码,可以⾮常便捷地取出域对象(pageContext、request、session、application)中保存的数据,前提是⼀定要先 setAttribute, EL 就相当于在简化 getAttribute ${变量名} ,变量名就是 setAttribute 对应的 key 值。

EL表达式查找顺序

1.EL表达式对于四种域对象的默认查找顺序

pageContext -》request-〉session-》application 按照上述的顺序进⾏查找,找到⽴即返回,在 application 中也⽆法找到,则返回 null

2.指定作用域进行查找

pageContext:${pageScope.name}

request:${requestScope.name}

session:${sessionScope.name}

application:${applicationScope.name}

数据级联:

<%
    // pageContext.setAttribute("name","page");
	// request.setAttribute("name","request");
	// session.setAttribute("name","session");
	// application.setAttribute("name","application");
    User user = new User(1,"张三",86.5,new Address(1,"⼩寨"));
    System.out.println(user.toString());
    pageContext.setAttribute("user",user);
%>
<table>
    <tr>
        <th>编号</th>
        <th>姓名</th>
        <th>成绩</th>
        <th>地址</th>
    </tr>
    <tr>
        <td>${user.id}</td>
        <td>${user.name}</td>
        <td>${user.score}</td>
        <td>${user.address}</td>
    </tr>
</table>

3.EL执行表达式

${num1&&num2} && || ! < > <= <= ==

&& and

|| or

! not

== eq

!= ne

< lt

gt

<= le

= ge

empty 变量为 null,⻓度为0的String,size为0的集合

示例

<%
    EL_User user=new EL_User("边信哲",20183694,21);
    request.setAttribute("user",user);     //这里的key值是user
%>

<!--首先用EL表达式单纯输出user-->
<!--未改写EL_User的toString()方法   输出结果:user:com.wildfire.javabean.EL_User@5e42f507-->
<!--改写了EL_User的toString()方法   输出结果:user:EL_User{name='边信哲', id=20183694, age=21}-->
<h1>user:${user}</h1>
<hr>
<!--如果想分别取出name id age里面的value值-->
${user.name}  ${user.id}  ${user.age}
<!--
    原理:
    1.id--》Id
    2.寻找到getId()方法
    3.调用getId()方法
-->

<!--也可以这样取user.address.addressAD-->
<!--也可以这样取user["id"]-->
<!--也可以这样设置user.id=20183694  但是不经常这么用-->
posted @ 2020-10-16 19:38  Mr_WildFire  阅读(79)  评论(0编辑  收藏  举报