您好,欢迎访问三七文档
EL表达式语法:${ELexpression}其中:$表示EL表达式的开始。ELexpression指定表达式。一、JSPEL表达式可用于如下几种方式。1静态文本:包含EL表达式,其值在运行时计算出来。如:${8+5}2标准标签和自定义标签属性:帮助显示网页上的动态内容。JSP提供一些标准标签,jsp:useBean、jsp:include等。自定义标签是由用户使用taglib指令编写的。EL表达式可以作为一个值传递给上述标签的属性。表达式在运行时计算,结果值将作为属性值进行传递。如:%pageContext.setAttribute(color,#ffccff);%bodybgcolor=${pageScope.color}7+8=${7+8}/body3JavaBean与EL表达式:使用EL表达式可以简洁地读出JavaBean的属性值。传统的JSP通常使用如下方法访问JavaBean:jsp:getPropertyname=”myBean”property=”name”/%=myBean.getName()%EL表达式则简化为:${myBean.name}二、启用/禁用EL表达式%@pageisELIgnored=”true|false”%为true时,支持EL表达式计算。为false时,不支持EL表达式计算。三、变量JSP表达式${product}的计算结果与调用pageContext.findAttribute(“product”)一样,EL表达式中的变量可以引用存储在标准范围(如:pagerequestsessionapplication)中的属性。点运算符(.)和”[]”用于获取变量的值。如:a.identifier-b与expr-a[identifier-b]等价。四、隐式对象JSP隐式对象是一组标准的类。在JSPEL定义了如下隐式对象:1pageContext:提供对页面属性的访问。通过pageContext对象可以访问和使用下列对象。2request:表示接受的客户端的JSP页面请求。请求的信息可以使用request对象来访问。如:${pageContext.request.contextPath}返回请求的上下文路径。3param:返回将请求参数名映射至单个字符串值的值。如:${param[“name”]}4paramValues:返回映射至客户端的请求参数的一组值。5pageScope:返回页面范围的变量名,这些名称已映射至相应的值。6requestScope:提供对请求对象的属性的访问权限。7sessionScope:返回会话范围内的变量名。8applicationScope:返顺应用程序范围内抽变量名。五、文字常量JSP表达式语言定义了下列文字常量:1布尔型:true或false。2整型:与Java中的整型相同。3浮点型:与Java中的浮点型相同。4字符串型:用单引号或双引号引起。5null:表示没有值。0和空字符串表示的不是null值。六、运算符点运算符(.)和”[]”用于获取变量的值。!或not布尔值取反empty检查空值*乘法/或div除法%或mod求余数或取模+加-减或lt小于或gt大于=或le小于等于=或ge大于等于==或eq等于!=或ne不等于&&或and逻辑与||或or逻辑或num1?num2:result条件运算符=================================================================[size=large]EL表达式动态表格数据加序号c:forEachvar=zbitems=${list}varStatus=index${index.count}/c:forEach================================================================定义页面变量,自增c:setvalue=0var=iscope=page/c:forEachvar=fbitems=${FB}varStatus=indextrtdwidth=10%align=centerc:iftest=${!emptyfb.sfbz}c:setvalue=${pageScope.i+1}var=iscope=page/c:outvalue=${pageScope.i}//c:if/tdtdwidth=40%${fb.xmmc}/tdtdwidth=40%${fb.sfbz}/td/tr/c:forEach==================================================================格式化时间fmt:formatDatevalue=${yxqjz}pattern=yyyy-MM-dd/fmt:formatDatevalue=${zxyprice.startdate2}type=datedateStyle=medium/====================================================================跨行c:iftest=${status.index==0}tdrowspan=${size}1月/td/c:if=====================================================================scripttype=text/javascript!--varTabbedPanels1=newSpry.Widget.TabbedPanels(TabbedPanels1);TabbedPanels1.showPanel(${tabId});//--/scriptdivid=TabbedPanels1class=TabbedPanelsulclass=TabbedPanelsTabGroupliclass=TabbedPanelsTabtabindex=0style=font-size:12px;background-color:#DED465;工作计划/li/ul/divEL表达式的基本语法:${expression}(由于EL表达式语法以${开头,所以如果在jsp页面中要显示${的字符串,必须在前面加上\符号,即\${,或者写成${'${'},也就是用表达式输出)EL表达式的特点:-在EL表达式中可以获取命名空间;-EL表达式不仅可以访问一般变量,还可以访问javabean中的属性,以及嵌套属性的集合对象;-在EL表达式中可以执行关系运算,逻辑运算,算术运算等;-扩展函数可以与java类的静态方法进行映射;-在EL表达式中可以访问jsp的作用域;-EL可以与JSTL结合使用,也可以与javascript结合使用EL表达式的取值范围:page:pageScope${pageScope.xx}request:requestScope${requestScope.xx}session:sessionScope${sessionScope.xx}application:applicationScope${applicationScope.xx}EL表达式的运算符存取运算符:-数组元素的获取${xx[i]}-集合元素的获取${xx[i]}-Map元素的获取${xx['x']}(El表达式无法像java一样使用+作为字符串连接符)算数运算符:+-*(/或者div)(%或者mod)关系运算符:(==或者eq)(!=或者ne)(或者lt)(或者gt)(=或者le)(=ge)(注意使用EL表达式时不能够写成${xx}==${yy}而要写成${xx==yy})逻辑运算符:同java一样&&(||或者or)(!=或者not)empty运算符:在EL表达式中有一个特殊的运算符,使用empty前缀,用来确定一个对象或者变量是否为空或者null${emptyexpression}${notemptyexpression}条件运算符:EL中的三元表达式${expression?expression:expression}元算符的优先级与java一样EL表达式中的隐含对象:-pageContext用来访问jsp内置对象param包含页面所有参数名跟对应值的集合paramValues包含页面所有参数名跟对应多个值得集合header包含每个header名和值得集合headerValues包含每个header名和可能的多个值得集合cookie包含每个cookie名跟值得集合initParam包含servlet上下文初始参数名跟对应值的集合
本文标题:EL表达式
链接地址:https://www.777doc.com/doc-2911315 .html