EL语言表达式 (二)【EL对数据的访问】
一、访问方式:
EL中访问数据和Java中访问数组的方式相同,即可以通过“[]”和“.”运算符进行访问。而且两种形式是等价的。如:
访问JavaBean对象userInfo中的id属性,可以写成下面两种形式:
${userInfo.id}和${userInfo[id]}
EL访问数据例子:
1 <%@ page language="java" contentType="text/html; charset=UTF-8" 2 pageEncoding="UTF-8"%> 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 4 <html> 5 <head> 6 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 7 <title>EL中数据的读取</title> 8 </head> 9 <body> 10 <% 11 String[] arr = {"Java web从入门到精通","Java开发规范手册","Java网络编程"}; 12 request.setAttribute("book",arr); //将数组保存到request对象中 13 %> 14 <% 15 String[] arr1 = (String[])request.getAttribute("book"); //获取保存到request范围内的变量 16 //通过循环和EL输出一维数组的内容 17 for(int i = 0;i < arr1.length;i++){ 18 request.setAttribute("requestI", i); 19 20 %> 21 ${ requestI }: ${ book[requestI] }<br> <!-- 输出数组中第i个元素 --> 22 <% 23 } 24 %> 25 </body> 26 </html>
运行以上代码结果如下:
二、EL语言表达式不仅仅可以输出字符和字符串,还可以对集合中的内容进行输出。
例:向session域中保存一个包含3个元素的List集合对象,并应用EL输出该集合的全部元素。
1 <%@ page language="java" contentType="text/html; charset=UTF-8" 2 pageEncoding="UTF-8"%> 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 4 <%@ page import="java.util.*" %> 5 <html> 6 <head> 7 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 8 <title>EL获取指定元素</title> 9 </head> 10 <body> 11 <% 12 List<String> list = new ArrayList<String>(); //声明一个List集合的对象 13 list.add("饼干"); 14 list.add("牛奶"); 15 list.add("果冻"); 16 session.setAttribute("goodList",list); //将List对象保存到session对象中 17 18 List<String> list1 = (List<String>)session.getAttribute("goodList"); //获取保存到session范围内的对象 19 for(int i=0;i<list1.size();i++){ 20 request.setAttribute("requestI", i); //将循环增量保存到request范围内的对象中 21 %> 22 ${ requestI }: ${ goodList[requestI] }<br> <!-- 输出集合的第i个元素 --> 23 <%} %> 24 25 </body> 26 </html>
运行以代码将显示如下结果: