一、什么是EL表达式?
1.什么是EL表达式?
EL(Expression Language) 是为了使JSP写起来更加简单的一种表达式语言。
2.EL表达式的基础语法
EL表达式只能读数据,不能修改数据。
EL表达式只能出现在静态部分,不能出现在java代码块中。
EL表达式不会抛出异常,在出现异常时,EL表达式将会以空白显示。
表达式只能从四大域中读取数据。
如果四大域内中有相同属性名,那么EL表达式将会从最小范围的域依次往最大域查找,page -> application
查找到相关内容后将会停止查找,并显示查找到的第一条数据。
二、EL表达式的常规用法
1.EL从JavaBean中读取数据
从bean中读取数据时,用点运算符(.)直接像取对象属性一样取得数据。
1 <% 2 user u = new user("张三",20,“男”); 3 pageContext.setAttribute("stu",u); 4 %> 5 user = ${stu}<br/> 6 score = ${stu.age}<br/> 7 math = ${stu.gender}<br/>
2.EL从List中读取数据
注:在EL表达式中应该使用的是setAttribute的key来作为取值对象
1 <% 2 List<Integer> nums = new ArrayList<Integer>(); 3 nums.add(Integer.valueOf("100")); 4 nums.add(200); 5 nums.add(new Integer(300)); 6 pageContext.setAttribute("num",nums); 7 %> 8 first = ${num[0]}<br/> 9 second = ${num[1]}<br/> 10 third = ${num[2]}<br/>
3.EL从map中读取数据
1 <% 2 Map<String,Object> map = new HashMap<String,Object>(); 3 map.put("张三",new user("zhangsan",21,new Score(80,88,90))); 4 map.put("李四",new user("lisi",22,new Score(89,87,96))); 5 map.put("王五",new user("wangwu",23,new Score(60,99,75))); 6 map.put("fruit","banana"); 7 pageContext.setAttribute("map",map); 8 %> 9 张三 = ${map.张三.score.chinese}<br/> 10 李四 = ${map.李四.score}<br/> 11 王五 = ${map.王五}<br/> 12 fruit = ${map.fruit}<br/>