EL表达式讲解
?
转自:http://blog.csdn.net/java_min/article/details/5943077
?
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