• EL表达式


    作用

                       jsp的核心语法: jsp表达式 <%=%>和 jsp脚本<%  %>。

                       以后开发jsp的原则: 尽量在jsp页面中少写甚至不写java代码。

                      使用EL表达式替换掉jsp表达式

                       EL表达式作用: 向浏览器输出域对象中的变量值或表达式计算的结果!!!

                       语法: ${变量或表达式}

    语法

                       1)输出基本数据类型变量

                                1.1 从四个域获取

                                    ${name}

                                 1.2 指定域获取

                                       ${pageScope.name}

                        域范围: pageScoep / requestScope / sessionScope / applicationScope

                                    2)输出对象的属性值

                                         Student

                                    3)输出集合对象

                                          List  和 Map

                                     4)EL表达式计算


    <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head> 
        <title>EL语法</title>  
      </head>
      
      <body>
        <%
         String name = "rose";  
         //放入域中
         //pageContext.setAttribute("name",name);
         pageContext.setAttribute("name",name,PageContext.REQUEST_SCOPE); 
          %>
          <%=name %>
          <br/>
          <%--
          1)从四个域自动搜索
           --%>
          EL表达式: ${name }
          <%--
              ${name } 等价于
                  <%=pageContext.findAttribute("name")%>
           --%>
           <%--
            2) 从指定的域中获取数据
            --%>
            EL表达式: ${pageScope.name }
            <%--
                ${pageScope.name } 等价于
                 <%= pageContext.getAttribute("name",PageContext.PAGE_SCOPE)%>
                
             --%>
      </body>
    </html>

    输出:

    rose 
    EL表达式: rose EL表达式:

    <%@ page language="java" import="java.util.*,com.loaderman.demo.Student" pageEncoding="utf-8"%>
    
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head> 
        <title>EL输出不同类型的数据</title>  
      </head>
      
      <body>
        <%--
            1)EL输出对象的属性    
         --%>
         <%
             //保存数据
             Student student = new Student("eric",20);
             //放入域中
             pageContext.setAttribute("student",student);
             
             //List
             List<Student>  list = new ArrayList<Student>();
             list.add(new Student("rose",18));
             list.add(new Student("jack",28));
             list.add(new Student("lucy",38));
             //放入域中
             pageContext.setAttribute("list",list);
             
             //Map
             Map<String,Student> map = new HashMap<String,Student>();
             map.put("100",new Student("mark",20));
             map.put("101",new Student("maxwell",30));
             map.put("102",new Student("narci",40));
             //放入域中
             pageContext.setAttribute("map",map);
             
          %>
          
          <%--使用EL获取对象 --%>
          ${student.name} - ${student.age }
          <%--
           ${student.name} 等价于     (点相对于调用getXX()方法)
              <%=((Student)pageContext.findAttribute("student")).getName()%>
           --%>
           
           <hr/>
           <%--使用EL获取List对象 --%>
           ${list[0].name } - ${list[0].age }<br/>
           ${list[1].name } - ${list[1].age }<br/>
           ${list[2].name } - ${list[2].age }
           <%--
           list[0]等价于       (中括号相对于调用get(参数)方法)
                   ((List)pageContext.findAttribute("list")).get(0)
            --%>
            <hr/>
            <%--使用EL获取Map对象 --%>
            ${map['100'].name } -  ${map['100'].age }<br/>
            ${map['101'].name } -  ${map['101'].age }<br/>
            ${map['102'].name } -  ${map['102'].age }<br/>
      </body>
    </html>

    输出:

    eric - 20

    rose - 18
    jack - 28
    lucy - 38

    mark - 20
    maxwell - 30
    narci - 40

    <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head> 
        <title>EL表达式计算</title>  
      </head>
      
      <body>
        <%--
            1)算术表达式
              +  -  *  /
         --%>
         ${10+5 }<br/>
         ${10*5 }
         <hr/>
         <%--
            2)比较运算
            >  <  >=  <=  ==   !=
         --%>
         ${10>5 }<br/>
         ${10<5 }<br/>
         ${10!=10 }
         <hr/>
         <%--
            3)逻辑运算
             &&  ||  !
         --%>
         ${true && false }<br/>
         ${true || false }<br/>
         ${!false }<br/>
         <hr/>
          <%--
            4)判空
            null 或 空字符串:  empty
         --%>
         <%
             //String name = "eric";
             //String name = null;
             String name = "";
             pageContext.setAttribute("name",name);
          %>
          判断null: ${name==null }<br/>
          判断空字符: ${name=="" }<br/>
         判空:  ${name==null || name=="" }
         另一种判空写法: ${empty name }
         
             
      </body>
    </html>

    输出:

    15
    50

    true
    false
    false

    false
    true
    true

    判断null: false
    判断空字符: true
    判空: true 另一种判空写法: true
  • 相关阅读:
    实现自己的Linq to Sql
    [分享] 浅谈项目需求变更管理
    【分享】老程序员的经验和价值在哪里?
    程序员是自己心中的“上帝”
    [分享]解析“程序员的十大技术烦恼”
    【分享】帮助你早些明白一些道理
    “风雨20年”的20条精辟编程经验
    【分享】 优秀程序员的代码是“活的”
    给开发人员培训时的语录
    【分享】SQL Server优化50法
  • 原文地址:https://www.cnblogs.com/loaderman/p/10001111.html
Copyright © 2020-2023  润新知