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

 

 

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