el表达式

el表达式

  • 简介:用于从jsp的域对象中获取数据。jsp的域对象包括page, request, session, application。

  • 目的:为了减少jsp页面中Java代码,使得jsp页面变得更优雅

  • 获取属性数据的语法:

    1. 完整的写法:

       ${域范围.属性名}
      
      • 域范围包括:
        • pageScope: page对象的属性域

        • requestScope:request对象的属性域

        • sessionScope:session对象的属性域

        • applicationScope:application对象的属性域

    2. 简写:

       ${属性名}
      
      • 优先级:优先从page对象获取属性,再request对象,再session对象,最后application对象,没有则返回null

    注:除了属性数据以外,也可以获得其他数据,比如参数数据

  • 获取简单的数据

    • 获取方式:

        ${属性名}
      
    • 例子:

        <%
        //为request对象设置两个属性
        request.setAttribute("name", "zero");
        request.setAttribute("age", 18);
        %>
        
        <!-- 使用el表达式获取request的属性 -->
        昵称:${name}
        <br/>
        年龄:${age}
      
  • 获取类对象的字段数据

    • 获取方式:

        ${属性名.类字段}
      
      • 该类字段必须实现了get()方法,el表达式会通过该字段名去调用相应的get()方法

      • 这里的属性名指的是域对象添加的属性

    • 例子:

        <%
        //为request对象设置一个User对象
        User user = new User("tom", 20, "男");
        request.setAttribute("user", user);
        %>
        
        <!-- 使用el表达式获取request的属性 -->
        姓名:${user.name}
        <br/>
        年龄:${user.age}
        <br/>
        性别:${user.gender}
      
  • 获取map集合数据

    • 获取方式:

        ${属性名.键名称}
      
    • 例子:

        <%
        //为request对象设置一个Map对象
        Map<String, String> map = new HashMap<String, String>();
        map.put("name", "zero");
        map.put("address", "山间小林");
        request.setAttribute("map", map);
        %>
        
        <!-- 使用el表达式获取request的属性 -->
        姓名:${map.name}
        <br/>
        住址:${map.address}
      
  • 获取list集合数据

    • 获取方式:

        ${属性名[index]}
      
      • index是List中的索引,索引从0开始
    • 例子:

        <%
        //为request对象设置一个List对象
        List<String> list = new ArrayList<String>();
        list.add("广州");
        list.add("深圳");
        request.setAttribute("list", list);
        %>
        
        <!-- 使用el表达式获取request的属性 -->
        地点1:${list[0]}
        <br/>
        地点2:${list[1]}
      
  • 其他用法:

    • 运算表达式:

        ${90 + 90}	//运算,输出180
      
    • 判断表达式:

        ${7 > 5}	//比较判断,输出true
      
    • 判断能否获取到数据

        ${empty 属性名}	//判断能否获得属性,能则返回true
      
    • 内置对象pageContext的使用:

      在el表达式中是无法获得其他内置对象的,但可以获得pageContext对象,通过pageContext对象可以获得其他对象,进而调用对象的属性

      获取项目目录:

        ${pageContext.request.contextPath}		
      
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值