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);
        %>
        
        
        昵称:${name}
        
      年龄:${age}
  • 获取类对象的字段数据

    • 获取方式:

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

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

    • 例子:

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

    • 获取方式:

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

        <%
        //为request对象设置一个Map对象
        Map map = new HashMap();
        map.put("name", "zero");
        map.put("address", "山间小林");
        request.setAttribute("map", map);
        %>
        
        
        姓名:${map.name}
        
      住址:${map.address}
  • 获取list集合数据

    • 获取方式:

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

        <%
        //为request对象设置一个List对象
        List list = new ArrayList();
        list.add("广州");
        list.add("深圳");
        request.setAttribute("list", list);
        %>
        
        
        地点1:${list[0]}
        
      地点2:${list[1]}
  • 其他用法:

    • 运算表达式:

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

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

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

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

      获取项目目录:

        ${pageContext.request.contextPath}		
      

你可能感兴趣的:(java,web)