一、访问方式:
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>
运行以代码将显示如下结果: