EL表达式(二)-- EL表达式的基本用法

本文详细介绍了EL表达式的各种运算,包括算术、逻辑、比较和特殊运算符的使用示例。同时,讲解了如何通过EL表达式获取不同类型的值,如普通值、自定义对象、数组、list集合和Map集合元素。最后,提到了EL表达式的隐式对象,特别是pageContext对象及其在获取项目路径中的应用。
摘要由CSDN通过智能技术生成

目录

1.  EL表达式的运算

1.1  算术运算符

1.2  逻辑运算符

 1.3  比较运算符

 1.4  特殊运算符

 2.  获取值

2.1  获取普通值

2.2  获取自定义对象

2.3  获取数组元素

2.4  获取list集合元素

2.5  获取Map集合元素

3.  EL表达式的隐式对象


1.  EL表达式的运算

1.1  算术运算符

运算符作用示例
+${5+5}
-${5 - 5}
*${3 * 5}
/或者div${9 / 2} 或者 ${9 div 2}
%或者mod取余${9%2} 或者 ${9 mod 2}
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
        ${5+5}<br>
        ${5-5}<br>
        ${5*5}<br>
        ${9/4}<br>
        ${9 div 4}<br>
        ${9%4}<br>
        ${9 mod 4}<br>
</body>
</html>

1.2  逻辑运算符

运算符作用示例结果
&& 或 and并且${A && B} 或 ${A and B}true / false
|| 或 or或者${A
! 或 not取反${ !A } 或 ${ not A }true / false
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
        ${1>2 && 1>3}<br>
        ${1>2 and 1>3}<br>
</body>
</html>

 1.3  比较运算符

运算符作用示例结果
== 或 eq等于${5 == 5}或 ${5 eq 5}true
!= 或 ne不等于${5 != 5} 或 ${5 ne 5}false
< 或 lt小于${3 < 5} 或 ${3 lt 5}true
> 或 gt大于${3 > 5} 或 ${3 gt 5}false
<= 或 le小于等于${3 <= 5} 或 ${3 le 5}true
>= 或 ge大于等于${3 >= 5} 或 ${3 ge 5}false
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
        ${1==1}<br>
        ${1 eq 1}<br>

        ${1!=1}<br>
        ${1 ne 1}<br>

        ${1<1}<br>
        ${1 lt 1}<br>

        ${1>1}<br>
        ${1 gt 1}<br>

        ${1<=1}<br>
        ${1 le 1}<br>

        ${1>=1}<br>
        ${1 ge 1}<br>
</body>
</html>

 1.4  特殊运算符

运算符作用
empty1.判断对象是否为null 2.判断字符串是否为空字符串 3.判断容器元素长度是否为0
条件 ? 表达式1 : 表达式2三元运算符
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
        <% request.setAttribute("msg","");%>

        ${ empty msg}

        <br>

        ${1>2? "你在搞笑?":"智商正常!"}
</body>
</html>

 2.  获取值

2.1  获取普通值

语法格式:

${域名称.键名}

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>

<%
    // 四大域对象  pageContext(仅限于当前页面)  request(一次请求之内)  session(一次会话之内)  application(全局共享)
    pageContext.setAttribute("msg","pageMsg");
    request.setAttribute("msg","requestMsg");
    session.setAttribute("msg","sessionMsg");
    application.setAttribute("msg","applicationMsg");//ServletContext
%>

<%--优先从最小的域取值, 如果没有,就去较大一级的域去找--%>
${msg}

<%--从指定的域中取值--%>
${pageScope.msg}
${requestScope.msg}
${sessionScope.msg}
${applicationScope.msg}
</body>
</html>

2.2  获取自定义对象

语法格式:

${域名称.键名.属性名}

Part类:

public class Part {
    private String name;
    private String address;
    private String art;

    public Part() {
    }

    public Part(String name, String address, String art) {
        this.name = name;
        this.address = address;
        this.art = art;
    }

    public String getName() {
        return name;
    }

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

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public String getArt() {
        return art;
    }

    public void setArt(String art) {
        this.art = art;
    }

    @Override
    public String toString() {
        return "Part{" +
                "name='" + name + '\'' +
                ", address='" + address + '\'' +
                ", art='" + art + '\'' +
                '}';
    }
}
<%@ page import="java.util.ArrayList" %>
<%@ page import="com.pojo.Part" %>
<%@ page import="java.util.Collections" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>$Title$</title>
</head>
<body>
<%
    ArrayList<Part> list = new ArrayList<>();
    Collections.addAll(list,new Part("盖伦","德玛西亚","天降正义"),new Part("卡特琳娜","洛克萨斯","死亡莲华"));

    request.setAttribute("list",list);
%>

${list[0]}
<br>
${list[1].name}
</body>
</html>

2.3  获取数组元素

语法格式:

${域名称.键名[索引]}

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>$Title$</title>
</head>
<body>
<%
    String[] str = {"aa","bb","cc"};
    request.setAttribute("arr",str);
%>

<%--如果索引越界不会报错,只会没有值--%>
${arr[0]}---${arr[1]}---${arr[2]}---${arr[3]}

</body>
</html>

2.4  获取list集合元素

语法格式:

${域名称.键名[索引]}

<%@ page import="java.util.ArrayList" %>
<%@ page import="java.util.Collections" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>$Title$</title>
</head>
<body>
<%
    ArrayList<String> arrayList = new ArrayList<>();
    Collections.addAll(arrayList,"aa","bb","cc");

    request.setAttribute("list",arrayList);
%>

${list[0]}---${list[1]}---${list[2]}
</body>
</html>

2.5  获取Map集合元素

语法格式:

${域名称.键名.key名称}

${域名称.键名["key名称"]}

<%@ page import="java.util.HashMap" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>$Title$</title>
</head>
<body>
<%
    HashMap<String, Object> map = new HashMap<>();
    map.put("code",200);
    map.put("msg.len","请求成功");

    request.setAttribute("map",map);
%>

${map.code}
<br>
${map["msg.len"]}
</body>
</html>

3.  EL表达式的隐式对象

隐式对象名称说明
pageContext功能完全相同(见解析)
applicationScope操作应用域对象数据
sessionScope操作会话域对象数据
requestScope操作请求域对象数据
pageScope操作页面域对象数据
header获取请求头数据
headerValues获取请求头数据(多个值)
param获取请求参数数据
paramValues获取请求参数数据(多个值)
initParam获取全局配置参数数据
cookie获取Cookie对象

解析:

在JSP页面中,可以使用EL表达式来访问pageContext对象并获取其属性。

pageContext对象是JSP页面的上下文对象,它提供了访问JSP页面环境中所有重要对象的方法。pageContext对象是JspContext接口的实现,并通过JSP引擎提供给JSP页面。 

在EL表达式中,可以使用pageContext对象来获取以下属性:


1. request:使用 ${pageContext.request}来获取HttpServletRequest对象。
2. response:使用 ${pageContext.response}来获取HttpServletResponse对象。
3. session:使用 ${pageContext.session}来获取HttpSession对象。
4. application:使用 ${pageContext.application}来获取ServletContext对象。
5. page:使用 ${pageContext.page}来获取正在被执行的JspWriter对象所属的页面的内部表达式的隐含对象。
6. config:使用 ${pageContext.config}来获取ServletConfig对象。


此外,pageContext对象还提供了许多有用的方法,如获取JSP页面范围内的属性、判断页面是否是第一次被访问等。因此,pageContext对象是JSP页面开发中不可或缺的一个重要对象。

 下面是pageContext获取动态项目路径的方法(重要记忆):

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>$Title$</title>
</head>
<body>
<%--el表达式获取项目路径--%>
${pageContext.request.contextPath}
</body>
</html>

  如果对你有帮助,请帮我点一下赞,我才有动力继续创作,谢谢!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值