EL表达式

1.EL表达式的简介

EL表达式是一种JSP技术,能够代替JSP中原本要用Java语言进行显示的语句,使得代码更容易编写与维护。最基本的语法是${express}。

2. 运算符:
                2.1. 算数运算符: + - * /(div) %(mod)
                2.2. 比较运算符: > < >= <= == !=
                2.3. 逻辑运算符: &&(and) ||(or) !(not)
                2.4. 空运算符: empty
3.获取值
            3.1. el表达式只能从域对象中获取值
            3.2. 语法:
                3.2.1. ${域名称.键名}:从指定域中获取指定键的值
                    域名称:
                         pageScope        --> pageContext
                         requestScope     --> request
                         sessionScope     --> session
                         applicationScope --> application(ServletContext)
                     举例:在request域中存储了name=张三
                     获取:${requestScope.name}

                3.2.2. ${键名}:表示依次从最小的域中查找是否有该键对应的值,直到找到为止。
     3.3. 获取对象、List集合、Map集合的值
                    3.3.1. 对象:${域名称.键名.属性名}
                        本质上会去调用对象的getter方法
                    3.3.2. List集合:${域名称.键名[索引]}
       3.3.3. Map集合:
                         ${域名称.键名.key名称}
                        ${域名称.键名["key名称"]}
        3. 隐式对象:
            el表达式中有11个隐式对象
            pageContext:
                获取jsp其他八个内置对象
                    ${pageContext.request.contextPath}:动态获取虚拟目录

4.EL表达式的常规用法

 4.1.EL从JavaBean中读取数据

从bean中读取数据时,用点运算符(.)直接像取对象属性一样取得数据。

<%
    user u = new user("张三",20,“男”);
    pageContext.setAttribute("stu",u);
%>
    user = ${stu}<br/>
    score = ${stu.age}<br/>
    math = ${stu.gender}<br/>

 4.2.EL从List中读取数据(在EL表达式中应该使用的是setAttribute的key来作为取值对象)

 <%
     List<Integer> nums = new ArrayList<Integer>();
     nums.add(Integer.valueOf("100"));
     nums.add(200);
     nums.add(new Integer(300));    
     pageContext.setAttribute("num",nums);
 %>
 first = ${num[0]}<br/>
 second = ${num[1]}<br/>
third = ${num[2]}<br/>

4.3.EL从map中读取数据

 <%
     Map<String,Object> map = new HashMap<String,Object>();
     map.put("张三",new user("zhangsan",21,new Score(80,88,90)));
     map.put("李四",new user("lisi",22,new Score(89,87,96)));
     map.put("王五",new user("wangwu",23,new Score(60,99,75)));
     map.put("fruit","banana");
     pageContext.setAttribute("map",map);
 %>
     张三 = ${map.张三.score.chinese}<br/>
    李四 = ${map.李四.score}<br/>
    王五 = ${map.王五}<br/>
    frit = ${map.fruit}<br/>
posted @ 2019-04-29 22:17  借我两块买雪糕  阅读(208)  评论(0编辑  收藏  举报