读书人

EL表达式讲授

发布时间: 2013-08-04 18:26:16 作者: rapoo

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

读书人网 >编程

热点推荐