您的位置:首页 > 其它

EL表达式详细使用

2016-04-11 11:31 274 查看
EL表达式语法: 

${ EL expression} 

其中: 

$表示EL表达式的开始。 

EL expression指定表达式。 

一、JSP EL表达式可用于如下几种方式。 

1 静态文本:包含EL表达式,其值在运行时计算出来。 

如: ${8+5} 

2 标准标签和自定义标签属性:帮助显示网页上的动态内容。 

JSP提供一些标准标签,<jsp:useBean>、<jsp:include>等。自定义标签是由用户使用taglib指令 编写的。 

EL表达式可以作为一个值传递给上述标签的属性。表达式在运行时计算,结果值将作为属性值进行传递。 

如: 

<% 

pageContext.setAttribute("color","#ffccff"); 

%> 

<body bgcolor="${pageScope.color}"> 

7+8=${7+8} 

</body> 

3 JavaBean与EL表达式:使用EL表达式可以简洁地读出JavaBean的属性值。 

传统的JSP通常使用如下方法访问JavaBean: 

<jsp:getProperty name=”myBean” property=”name”/> 

<%=myBean.getName()%> 

EL表达式则简化为: 

${myBean.name} 

二、启用/禁用EL表达式 

<%@ page isELIgnored=”true|false” %> 

为true时,支持EL表达式计算。 

为false时,不支持EL表达式计算。 

三、变量 

JSP表达式${product}的计算结果与调用pageContext.findAttribute(“product”)一样,EL表达式 中的变量可以引用存储在标准范围(如:page request session application)中的属性。 

点运算符(.)和”[]”用于获取变量的值。 

如:a.identifier-b与expr-a[identifier-b]等价。 

四、隐式对象 

JSP隐式对象是一组标准的类。在JSP EL定义了如下隐式对象: 

1 pageContext:提供对页面属性的访问。通过pageContext对象可以访问和使用下列对象。 

2 request:表示接受的客户端的JSP页面请求。请求的信息可以使用request对象来访问。 如:${pageContext.request.contextPath}返回请求的上下文路径。 

3 param:返回将请求参数名映射至单个字符串值的值。如:${param[“name”]} 

4 paramValues:返回映射至客户端的请求参数的一组值。 

5 pageScope:返回页面范围的变量名,这些名称已映射至相应的值。 

6 requestScope:提供对请求对象的属性的访问权限。 

7 sessionScope:返回会话范围内的变量名。 

8 applicationScope: 返顺应用程序范围内抽变量名。 

五、文字常量 

JSP表达式语言定义了下列文字常量: 

1 布尔型:true或false。 

2 整型:与Java中的整型相同。 

3 浮点型:与Java中的浮点型相同。 

4 字符串型:用单引号或双引号引起。 

5 null:表示没有值。0和空字符串表示的不是null值。 

六、运算符 

点运算符(.)和”[]”用于获取变量的值。 

!或not                                布尔值取反 

empty                                 检查空值 

*                                          乘法 

/或div                                 除法 

%或mod                           求余数或取模 

+                                         加 

-                                          减 

<或lt                                  小于 

>或gt                                 大于 

<=或le                               小于等于 

>=或ge                             大于等于 

==或eq                             等于 

!=或ne                               不等于 

&&或and                          逻辑与 

||或 or                                逻辑或 

num1?num2:result        条件运算符 

=================================================================

[size=large]EL表达式 动态表格数据加序号 

<c:forEach var="zb" items="${list}" varStatus="index"> 

${index.count} 

</c:forEach>
 

================================================================ 

定义页面变量,自增 

<c:set value="0" var="i" scope="page"/> <c:forEach var="fb" items="${FB}" varStatus="index">      

<tr> <td width="10%" align="center"> <c:if test="${!empty fb.sfbz}"> 

<c:set value="${pageScope.i + 1}" var="i" scope="page"/> 

<c:out value="${pageScope.i }"/> </c:if>   

</td> <td width="40%"> 

${fb.xmmc} 

</td> 

<td width="40%"> 

${fb.sfbz} 

</td> 

</tr> 

</c:forEach> 

================================================================== 

格式化时间 

<fmt:formatDate value="${yxqjz}" pattern="yyyy-MM-dd" /> 

<fmt:formatDate value="${zxyprice.startdate2}" type="date" dateStyle="medium"/> 

==================================================================== 

跨行 

<c:if test="${status.index == 0}" > 

<td rowspan="${size}">1月</td> 

</c:if> 

===================================================================== 

<script type="text/javascript"> 

<!-- 

var TabbedPanels1 = new Spry.Widget.TabbedPanels("TabbedPanels1"); 

TabbedPanels1.showPanel(${tabId}); 

//--> 

</script> 

<div id="TabbedPanels1" class="TabbedPanels"> 

<ul class="TabbedPanelsTabGroup"> 

<li class="TabbedPanelsTab" tabindex="0" style="font-size:12px;background-color:#DED465;"> 

工作计划 

</li> 

</ul> 

</div>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: