EL:Expression language;很方便去访问attribute 的值;
User user=new User();
user.setName("LiLi");
request.setAttribute("user",user);
1)<jsp:useBean id="user" class="com.briup.javaBean.User" scope="request"/>
<jsp:getProperty name="user" property="name"/>
2)<%
User user=(User)request.getAttribute("user");
if(user!=null)
{
out.println(user.getName);
}
%>
3) ${user.name} --->user 对应scope的属性名;".name"相当于".getName()"方法相当于表达式的语句:
<%
User user=(User)request.getAttribute("user");
if(user!=null)
{
out.println(user.getName);
}else{
out.println("");
}
%>
优点:EL不会即使你写错也不会出现空指针异常。
-------------------------------------------------------------------------------------------------------------------------
EL的语法:${...}
-------------------------------------------------------------------------------------------------------------------------
EL的使用场合
1)一些标签的属性中
如:<prefixName:tagName attrName="${...}"/>
2)html中的标记的属性
如:<input type="text" value="${...}"/>
3)jsp中任何空白处
如:<body>${...}</body>
-------------------------------------------------------------------------------------------------------------------------
在表达式语言EL(${...})中可以使用的字面符
1.基本数据类型(或包装类型).
2.布尔型(true,false).
3.字符串(使用""或''括起来)
4.null
5.算术、逻辑、关系表达式
6.empty(用来判断一个对象是否为null或者一个字符串是否为"")
7.一些隐含对象(如:requestScope)
8.对象、集合、数组、枚举和迭代器(Iterator)
-------------------------------------------------------------------------------------------------------------------------
EL操作符的使用
<html>
<body>
<center>
<h3>Arithmetic Operator</h3>
${2+3}
<h3>Relation Operator</h3>
${2>3}
<h3>Logic Operator</h3>
${true&&false}
<h3>use of empty</h3>
${empty str}
<h3>other</h3>
${1}
${2.1}
${'lili'}
c${null}
</center>
</body>
</html>
-----------------------------------------------------------------------------------------------------------------------
EL的11种隐含对象,区别于JSP的9种内置对象.
1.pageContext:jsp页面的上下文,它提供了访问一下对象的方法
servletContext
${pageContext.servletContext}=pageContext.getServletContext();
session
${pageContext.session}=pageContext.getSession();
request
${pageContext.request}=pageContext.getRequest();
reponse
${pageContext.reponse}=pageContext.getReponse();
2.param:把请求中的参数和单个值进行映射,获得一个值
${param.name}=request.getParameter("name");
3.paramValues:把请求中的参数和Array值进行映射,获得多个值
${paramValues.hobby}=request.getParameterValues("hobby");
4.header:把请求中header的字段和单个值进行映射,获得http头部信息
${header.name}=request.getHeader("name");
5.headerValues:把请求中header的字段和一个array进行映射
${headerValues.name}=request.getHeaders("name);
6.cookie:把请求中的cookie和单一的值进行映射
Cookie cookie=new Cookie("height","100");
${cookie.height}:输出一个Cookie的对象
${cookie.height.name}=${cookie.height.value}
分别输出Cookie的名称和值(height=100)
7.initParam:把上下文的初始参数和单一的值进行映射,获得初始华参数
${initParam.name}=servletContext.getInitParameter("name");
8.pageScope:把page范围中的name(属性名)和value(属性值)进行映射
pageContext.setAttribute("name","jack");
${pageScope.name}=pageContext.getAttribute("name");
9.requestScope:把request范围中的name(属性名)和value(属性值)进行映射
request.setAttribute("name","jack");
${requestScope.name}=request.getAttribute("name");
10.sessionScope:把session范围中的name(属性名)和value(属性值)进行映射
session.setAttribute("name","jack");
${sessionScope.name}=session.getAttribute("name");
11.applicationScope:把application范围中的name(属性名)和value(属性值)进行映射
servletContext.setAttribute("name","jack");
${applicationScope.name}=servletContext.getAttribute("name");
--------------------------------------------------------------------------------------------------------------------------