天天看点

EL表达式 (超级详细!!)EL表达式

EL表达式

1.EL表达式的语法

EL(expression language)是为了让JSP写起来更加方便,他提供了在jsp中简化表达式的方法,让jsp的代码更加简化

语法结构:${expression}

注意,EL表达式一般操作的都是域对象中的数据,操作不了局部变量.

eg:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>EL表达式</title>
</head>
<body>
  <%
      pageContext.setAttribute("username","zhangsan");
      request.setAttribute("username","lisi");
      session.setAttribute("username","wangwu");
      application.setAttribute("username","zhaoliu");
  %>
  <pre>
        获取作用域中username: ${username}<br><%-- 默认从小到大的范围中找,找到的第一个返回 --%>
        不在作用域中的: ${password}
        <%--获取request作用域中的username: ${requestScope.username}
        获取session作用域中的username: ${sessionScope.username}
        获取application作用域中的username: ${applicationScope.username}--%>
  </pre>
</body>
</html>
           
EL表达式 (超级详细!!)EL表达式

不在作用域中的不是显示null,而是显示为空

域对象的概念在jsp中共有四种,分别是pageContext,request,session,application,范围依次是-> 本页面,一次请求,一次会话,整个应用程序

从指定范围中取值,以及取值默认规则

  • 当需要指定从某个特定的域对象中查找数据的时候可以使用四个域对象对应的空间对象分别为:pageScope,requestScope,sessionScope,applicationScope
  • EL默认的查找方式为:从小到大查找,找到了即返回,若未查找到则返回空字符串

2.实例

1.获取指定范围的username

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>EL表达式</title>
</head>
<body>
  <%
      pageContext.setAttribute("username","zhangsan");
      request.setAttribute("username","lisi");
      session.setAttribute("username","wangwu");
      application.setAttribute("username","zhaoliu");

  %>
  <pre>
         获取pageContext作用域中的username:  ${pageScope.username}
         获取request作用域中的username: ${requestScope.username}
         获取session作用域中的username: ${sessionScope.username}
         获取application作用域中的username: ${applicationScope.username}
  </pre>
</body>
</html>
           
EL表达式 (超级详细!!)EL表达式

2.获取作用域中的集合

<%@ page import="java.util.List" %>
<%@ page import="java.util.ArrayList" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>EL表达式</title>
</head>
<body>
  <%
      List<String> list=new ArrayList<String>();
      list.add("aaa");
      list.add("bbb");
      list.add("ccc");
      request.setAttribute("list",list);
  %>
  <pre>
           获取list中指定下标的数据:${list[1]}--${list[2]}
           获取集合的长度:${list.size()}
           list代表的是存在域对象中的变量名(限域变量名)
  </pre>
</body>
</html>
           
EL表达式 (超级详细!!)EL表达式

3.获取JavaBean对象

<%@ page import="com.User.User" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>EL表达式</title>
</head>
<body>
  <%
         User user=new User();
         user.setUsername("zhangsan");
         user.setSex(true);
         user.setUserId(1);
         request.setAttribute("user",user);//设置域对象属性
  %>
  <pre>
         获取JavaBean中的username  ${user.username}
         获取JavaBean中的userId    ${user.userId}
         获取JavaBean中的sex       ${user.sex}     
  </pre>
</body>
</html>
           
EL表达式 (超级详细!!)EL表达式

4.empty

EL表达式 (超级详细!!)EL表达式
判断JavaBean中的User是否为空 ${empty user}<%--返回true则为空% 结果为false-->
           

3.EL表达式的运算

EL表达式 (超级详细!!)EL表达式
EL表达式 (超级详细!!)EL表达式
EL表达式 (超级详细!!)EL表达式