EL表达式
EL表达式 是 JSP技术中原生支持的 表达式解析
格式:
${表达式内容}
理解:
1.EL表达式是从域或者对象范围内查找变量数据的,如果没有传入域,则它会有默认的查找顺序
2.EL表达式返回的是一个显示结果,只能写在标签内,不能直接写在<% %>的代码内
1. 11大内置对象
- pageScope
- requestScope
- sessionScope
- applicationScope
- param 一个请求参数值
- paramValues 一组请求参数值
- header 一个请求头值
- headerValues 一组请求头值
- initParam 初始化参数
- cookie cookie值
- pageContext JSP中的PageContext ,万能对象。
2.查找顺序
当EL表达式中的变量不给定范围时,则默认在page范围查找,然后依次在request、session、application范围查找
session.setAttribute("ppp","789");
<td> ${ppp}</td>
或者指定查找范围:
<td> ${sessionScope.get("ppp")}</td>
3.访问类方法和属性
实例化一个类后想要访问它的属性:
${实例类.属性名}
下面两种格式主要防止属性名中有特殊字符
${实例类['属性名']}
${实例类["属性名"]}
<%
People people1 = new People();
people1.setId(10);
people1.setName("张三");
pageContext.setAttribute("people1",people1);
%>
<h1>${people1.name}</h1>
访问它的方法:
${实例类.方法名()}
<%
People people1 = new People();
people1.setId(10);
people1.setName("张三");
pageContext.setAttribute("people1",people1);
%>
<h1>${people1.setId(45)}${people1.id}</h1>
4.获取对象
内置对象中前面四个其实获取的是域对象,
但是通常我们可以通过pageContext对象来获取其他对象,并利用它来进行一些特定数据获取
例:
获取项目名:
${pageContext.request.contextPath}