栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

EL表达式

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

EL表达式

EL表达式 1.相关概念
  • 概念:expression Language 表达式页面
  • 作用:替换和简化jsp页面中的java代码的编写
  • 语法:${表达式}
  • jsp默认支持EL表达式,如果要忽略EL表达式:
    • 设置jsp中page指令中:isELIgnored="true" 忽略当前jsp页面中所有的EL表达式
    • ${表达式}:忽略当前这个EL表达式
2.使用 2.1 运算

运算符:

  • 算数运算符:+ - * /(div) %(mod)
  • 比较运算符:> < >= <= == !=
  • 逻辑运算符:&&(and) ||(or) !(not)
  • 空运算符:empty
    • 功能:用于判断字符串、集合、数组对象是否为null或者长度是否为0
    • ${empty list}:判断字符集、集合、数组对象是否为null或者长度是否为0
    • ${not empty str}:判断字符串、集合、数组对象是否不为null并且长度>0
算数运算符
${3 + 4}
${3 / 4}
${3 div 4}
${3 % 4}
${3 mod 4}

输出:

2.2 获取值
  1. EL表达式只能从域对象中获取值

  2. 语法:

    • ${域名称.键名}:从指定域中获取指定键的值
      • 域名称:
        1. pageContext -->pageContext
        2. requestScope -->request
        3. sessionScope -->session
        4. appliactionScope -->application(ServletContext)
    • ${键名}:表示依次从最小的域中查找是否有该键对应的值,直到找到为止
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    
    
        Title
    
    
    <%
        request.setAttribute("name","超");
        session.setAttribute("age",19);
        session.setAttribute("name",19);
    %>
    ${requestScope.name}    <%--超--%>
    ${requestScope.nasd}    <%--无输出--%>
    ${sessionScope.age}     <%--19--%>
    
    ${name}		<%--超--%>
    ${age}		<%--19--%>
    
    
    
    • 获取对象、List集合、Map集合的值
      1. 对象:${域名称.键名.属性名}(本质上是调用对象的getter方法)
      2. List集合:${域名称.键名.[索引]}
      3. Map集合:
        • ${域名称.键名.key名称}
        • ${域名称.键名.["key名称"]}

实例1:

User.java:

package cn.chao.web;

import java.text.SimpleDateFormat;
import java.util.Date;

public class User {
    private String name;
    private int age;
    private Date birthday;

    public String getBirstr() {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd号 hh:mm:ss");
        return sdf.format(birthday);
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public Date getBirthday() {
        return birthday;
    }

    public void setBirthday(Date birthday) {
        this.birthday = birthday;
    }
}

elDemo3.jsp:

<%@ page import="cn.chao.web.User" %>
<%@ page import="java.util.Date" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    Title


<%
    User user = new User();
    user.setName("超");
    user.setAge(19);
    user.setBirthday(new Date());
    request.setAttribute("user", user);
%>
<%--
    通过的是对象的属性来获取
        setterhuogetter方法,去掉set或get,再将剩余部分首字母小写
        setName-->name
--%>
${requestScope.user}
${user}
${user.name}
${user.birthday}
${user.birthday.month}
${user.birstr}

输出:

cn.chao.web.User@60df5852
cn.chao.web.User@60df5852
超
Sun Oct 10 10:18:02 CST 2021
9
2021年10月10号 10:18:02

实例2:

<%@ page import="cn.chao.web.User" %>
<%@ page import="java.util.*" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    Title


<%
    User user = new User();
    user.setName("超");
    user.setAge(19);
    user.setBirthday(new Date());
    List list = new ArrayList();
    list.add("aaa");
    list.add("bbb");
    list.add(user);
    request.setAttribute("list", list);

    Map map = new HashMap();
    map.put("mname", "张三");
    map.put("sex", "男");
    map.put("user", user);
    request.setAttribute("map", map);
%>
${list}
${list[0]}
${list[1]}
${list[2].name}
${map.mname}
${map["sex"]}
${map.user.name}

输出:

[aaa, bbb, cn.chao.web.User@741782a8]
aaa
bbb
超
张三
男
超
  1. 隐式对象:
    • EL表达式中有11个隐式对象
    • pageContext:获取其他八个内置对象
      • ${pageContext.request.contextPath}:动态获取虚拟目录
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/310146.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号