EL表达式讲解

EL表达式的使用前提是,容器必须在2.4及以上版本。

 

EL表达式中有隐式对象,pageScope,requestScope,sessionScope,applicationScope    EL表达式默认查找变量的顺序会按照以上顺序从隐式对象中取值,为了提高效率,我们可以直接指定搜索域。

 

如:  后台   request.setAttribute("a","hello");

      前台    ${requestScope.a}

 

EL表达式取得request中对象中的值:

 

     后台:

           request.setAttribute("user",user);

 

     前台:

            ${user}                                     取得user对象

            ${user.userName}                    取得user对象的userName属性的值

            ${user.group.name}                 取得user对象所属组的组名    

 

 

EL表达式取得request中的Map中的值

 

     后台:

           Map map = new HashMap();

                   map.put("key1","abc");

                   map.put("key2","bcd");

        

           request.setAttribute("mapValue",map);

 

      前台:

            ${mapValue.key1}         //${mapValue}  取得map对象,之后导航key1就可以取得key1的值

            ${mapValue.key2}

           

EL表达式取得request中的数组中的值(采用[]和下标)

 

     后台:

            String[]  str= new String[]{"a","b",”c“};

             request.setAttribute("str",str);

 

     前台:

           ${str[1]}           //下标从0开始

 

EL表达式取得request中的对象数组中的值(采用[]和下标)

 

     后台:

           user[] users = new User[10];

           while(i < user.length){

                     User user = new User();

                     user.setId(i);

                     user.setUserName("user"+i);

                     users[i] = user;

           }

 

           request.setAttribute("user",user);

 

     前台:

           ${user[2].userName} 

 

 

EL表达式取得request中的集合对象中的值(采用[]和下标)

 

     后台:

           ArrayList list = new ArrayList();

           while(i < 10){

                     User user = new User();

                     user.setId(i);

                     user.setUserName("user"+i);

                     list.add(user);

           }

 

           request.setAttribute("user",list);

 

      前台:

            ${user[3].userName}

 

注意:EL表达式运算符

         + - * (/ div)  (% mod)  (== eq)  (!= ne)  (<  lt)  (<=  le)  (>= ge)  (&&  or)  (!  not) 

 

EL表达式判空

        后台:

              request.setAttribute("value2","");

              request.setAttribute("value3",new ArrayList());

              request.setAttribute("value4","123456");

              request.setAttribute("value5",null);

 

        前台:

              ${empty value1}

              ${empty value2}

              ${empty value3}

              ${empty value4}

              ${empty value5}

 

         结果:

                true

                true

                true

                false

                true

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章