EL表达式
是为了简化咱们的jsp代码,具体一点就是为了简化在jsp里面写的那些java代码。
对域中对象做判定
- 写法格式
${表达式 }
如果从作用域中取值,会先从小的作用域开始取,如果没有,就往下一个作用域取。 一直把四个作用域取完都没有, 就没有显示。
如何使用
1. 取出4个作用域中存放的值。
<%
pageContext.setAttribute("name", "page"); // 发布数据
request.setAttribute("name", "request");
session.setAttribute("name", "session");
application.setAttribute("name", "application");
%>
按普通手段取值<br>
<%= pageContext.getAttribute("name")%>
<%= request.getAttribute("name")%>
<%= session.getAttribute("name")%>
<%= application.getAttribute("name")%>
<br>使用EL表达式取出作用域中的值<br>
${ pageScope.name }
${ requestScope.name }
${ sessionScope.name }
${ applicationScope.name }
-
如果域中所存的是数组
<% String [] a = {"aa","bb","cc","dd"}; pageContext.setAttribute("array", a); %> 使用EL表达式取出作用域中数组的值<br> ${array[0] } , ${array[1] },${array[2] },${array[3] }
-
如果域中锁存的是集合
<br>-------------Map数据----------------<br> <% Map map = new HashMap(); map.put("name", "zhangsna"); map.put("age",18); map.put("address","北京.."); map.put("address.aa","深圳.."); pageContext.setAttribute("map", map); %> 使用EL表达式取出作用域中集合的值<br> ${li[0] } , ${li[1] },${li[2] },${li[3] }
-
取出Map集合的值
<%
Map map = new HashMap();
map.put(“name”, “zhangsna”);
map.put(“age”,18);
map.put(“address”,“北京…”);map.put("address.aa","深圳.."); pageContext.setAttribute("map", map);
%>
使用EL表达式取出作用域中Map的值${map.name } , ${map.age } , ${map.address } , ${map[“address.aa”] }
取值细节:
-
从域中取值。 得先存值。
<% //pageContext.setAttribute("name", "zhangsan"); session.setAttribute("name", "lisi..."); %> <br>直接指定说了,到这个作用域里面去找这个name,没有的话就不着了<br> ${ pageScope.name } <br>//先从page里面找,没有去request找,去session,去application <br> ${ name } <br>指定从session中取值<br> ${ sessionScope.name }
-
取值方式
如果这份值是有下标的,那么直接使用[]
<%
String [] array = {"aa","bb","cc"}
session.setAttribute("array",array);
%>
${ array[1] } --> 这里array说的是attribute的name
如果没有下标, 直接使用 .的方式去取
<%
User user = new User("zhangsan",18);
session.setAttribute("u", user);
%>
${ u.name } , ${ u.age }
一般使用EL表达式,用的比较多的,都是从一个对象中取出它的属性值,比如取出某一个学生的姓名。
EL表达式 的11个内置对象。
${ 对象名.成员 }
- pageContext
作用域相关对象
- pageScope
- requestScope
- sessionScope
- applicationScope
头信息相关对象
- header
- headerValues
参数信息相关对象
- param
- paramValues
使用EL表达式获取请求参数
${param.address}
// 相当于 <%= request.getParameter("address")%>
- cookie
全局初始化参数 - initParam