二阶段录屏-jstl和el表达式_第1页
二阶段录屏-jstl和el表达式_第2页
二阶段录屏-jstl和el表达式_第3页
二阶段录屏-jstl和el表达式_第4页
二阶段录屏-jstl和el表达式_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

EL表达式的语法结构EL表达式的隐式对象JSTL的定义与作用Core标签的使用Fmt标签的使用Fn标签的使用JSTL一般要配合EL表达式一起使用,来实现在jsp页面中不出现java代码段。所以先学习EL表达式EL主要用于查找作用域中的数据,然后对它们执行简单操作;它不是编程语言,甚至不是脚本编制语言。通常与JSTL标记一起作用,能用简单而又方便的符号来表示复杂的行为。EL表达式的格式:用美元符号($)定界,内容包括在花括号({})中;例如:${userBean.user}此外,您可以将多个表达式与静态文本组合在一起以通过字符串并置来构造动态属性值;例如:Hello${userBean.user}${loginInfoBean.pwd}EL表达式由标识符、存取器、文字和运算符组成。标识符用来标识存储在作用域中的数据对象。EL有11个保留标识符,对应于11个EL隐式对象。除了11隐式对象外,假定所有其它标识符都用来标识作用域的变量。例:${abc}相当于<%=pageContext.findAttribute(“abc”)%>${og_1}<%=pageContext.findAttribute(“og_1”)%>…等等;就是说{}内的标识符除了11个保留字之外都表示作用域中的数据对应的名.${requestScope}中的requestScope是11个EL隐式对象之一,它不再表示作用域中数据,而是表示request作用域;${requestScope.userBean.username}pageContext PageContext实例对应于当前页面的处理pageScope 与页面作用域属性的名称和值相关联的Map类

requestScopes 与请求作用域属性的名称和值相关联的Map类

sessionScope 与会话作用域属性的名称和值相关联的Map类

applicationScope与应用程序作用域属性的名称和值相关联的Map类param 按名称存储请求参数的主要值的Map类paramValues 将请求参数的所有值作为String数组存储的Map类Header 按名称存储请求头主要值的Map类headerValues 将请求头的所有值作为String数组存储的Map类cookie 按名称存储请求附带的cookie的Map类initParam 按名称存储Web应用程序上下文初始化参数的Map类EL表达式 JSP页面pageScope pageContext.getAttribute("");requestScope request.getAttribute();sessionScope session.getAttribute();applicationScope application.getAttribute();pageContext pageContext这个对象。param request.getParameter();paramValues request.getParameterValues();header request.getHeader();headerValues request.getHeaderNames();cookie cookieinitParam applicationContext.getInitParameter();存取器用来检索对象的特性或集合的元素。存取器:通过“[]”或“.”符号获取相关数据例:${userBean.user}或${userBean[“user”]}//获取输出bean中的suser属性值;${mcType[“id”]}//获取map中key为id对应的值;运算符允许对数据和文字进行组合以及比较。EL运算符:类别

运算符

算术运算符 +、-、*、/(或div)和%(或mod)关系运算符 ==(或eq)、!=(或ne)、<(或lt)、>(或gt)、<=(或le) 和>=(或ge)逻辑运算符 &&(或and)、||(或or)和!(或not)验证运算符

empty验证运算符(empty):对于验证数据特别有用。empty运算符采用单个表达式作为其变量(也即,${emptyinput}),并返回一个布尔值,该布尔值表示对表达式求值的结果是不是“空”值。求值结果为null的表达式被认为是空,即无元素的集合或数组。如果参数是对长度为零的String求值所得的结果,则empty运算符也将返回true。算术运算符支持数值的加法、减法、乘法和除法。还提供了一个求余运算符。注:除法和求余运算符都有替代的、非符号的名称(为的是与XPath保持一致)。

文字表示固定的值—数字、字符、字符串、布尔型或空值。在EL表达式中,数字、字符串、布尔值和null都可以被指定为文字值。字符串可以用单引号或双引号定界。布尔值被指定为true和falseJSTL(JSPStandardTagLibrary,JSP标准标签库)是一个不断完善的开放源代码的JSP标签库,是由apache的jakarta小组来维护的。JSTL1.0由四个定制标记库(core、format、xml和sql)和一对通用标记库验证器组成。core标记库提供了定制操作,通过限制了作用域的变量管理数据,以及执行页面内容的迭代和条件操作。它还提供了用来生成和操作URL的标记。format标记库定义了用来格式化数据(尤其是数字和日期)的操作。它还支持使用本地化资源束进行JSP页面的国际化。xml库包含一些标记,这些标记用来操作通过XML表示的数据,而sql库定义了用来查询关系数据库的操作。JSP用于开发信息展现页非常方便;也可以嵌入java代码(scriptlet、表达式和声明)代码用来实现相关逻辑控制。看下面程序。但这样做会带来如下问题:jsp维护难度增加;出错提示不明确,不容易调试;分工不明确;(即jsp开发者是美工,也是程序员);最终增加程序的开发成本;解决上面的问题可以使用定制标记库,JSTL使JSP开发者可以减少对脚本元素的需求,甚至可以不需要它们,从而避免了相关的维护成本。使分工更明确。<%if(session.getAttribute(“user”).equals(“member”)){%><p>e,member!</p><%}else{%><p>e,guest!</p><%}%>JSTL一般配合EL一起使用获取输出作用域中变量.<c:out>属性:value[default][escapeXml]定义作用域中变量<c:set>属性:valuevar[scope]删除作用域中变量<c:remove>属性:var[scope]<c:setvar="timezone"scope="session"value="CST"/><c:setvar="square"value="${param['x']*param['x']}"/><c:outvalue="expression“default="expression"escapeXml="boolean"/>escapeXml属性也是可选的。它控制当用<c:out>标记输出诸如“<”、“>”和“&”之类的字符(在HTML和XML中具有特殊意义)时是否应该进行转义。如果将escapeXml设置为true,则会自动将这些字符转换成相应的XML实体(此处提到的字符分别转换成<、>和&)。

<c:outvalue="${user.username}"default=="Guest"/>!<c:remove>标签用于删除数据例子:<c:removevar="test2"scope="session"/>

从session中删除test2变量。单分支条件<c:if>属性:test[var][scope]多分支条件

<c:choose><c:when>属性:test<c:otherwise><c:import>标签包含另外一个页面代码到当前页,它有以下属性:属性描述是否必须缺省值urlurl地址是无context/后跟本地web应用程序的名字否当前应用程序charEncoding用于导入数据的字符集否ISO-8859-1var接受导入文本的变量名否page<c:url>标签输出一个url地址,它有以下属性:属性描述是否必须缺省值valueurl地址是无context/后跟本地web应用程序的名字否当前应用程序charEncoding用于导入数据的字符集否ISO-8859-1var接受导入文本的变量名否page例子:

<c:importurl=""var="newsfeed"/>

将url包含到当前页的当前位置,并将url保存到newsfeed变量中

<ahref="<c:urlvalue="/index.jsp"/>"/>

在当前页的当前位置输出<ahref=""/>,是当前页的所在的位置。<c:redirect>标签将请求重新定向到另外一个页面,它有以下属性:属性描述是否必须缺省值urlurl地址是无context/后跟本地web应用程序的名字否当前应用程序<c:redirecturl=""/>

将请求重新定向到页,相当于response.sendRedirect("");<c:param>标签用来传递参数给一个重定向或包含页面,它有以下属性:属性描述是否必须缺省值name在request参数中设置的变量名是无value在request参数中设置的变量值否无例子:<c:redirecturl="login.jsp"><c:paramname="id"value="888"/></c:redirect>将参数888以id为名字传递到login.jsp页面,相当于login.jsp?id=888<c:forEach>标签用于通用数据,它有以下属性:属性描述是否必须缺省值Items进行循环的项目是无Begin开始条件否无End结束条件0Step步长最后一个Var代表当前项目的变量名无varStatus显示循环状诚的变量无属性varStatus和var相似设置一个作用域变量;只是varStatus作用域变量中存的是包括运行状态的对象;此对象包含如下属性:currentindexcountfirstlastbegin<%@pagelanguage="java"contentType="text/html;charset=GBK"%><%@taglibprefix="c"uri="/WEB-INF/c.tld"%><html><head> <metahttp-equiv="Content-Type"content="text/html;charset=gb2312"/> <title>testjstl1</title></head><body> <c:forEachvar="i"step="1"begin="1"end="100"> ${i}<br> </c:forEach></body></html>数字格式化成字符串数学/科学计算的格式,默认小数点保留3位。<fmt:formatNumbertype="number"value="<%=d_1%>" maxFractionDigits="5"minFractionDigits="2"></fmt:formatNumber>

贷币形式<fmt:formatNumbertype="currency"value="<%=d_2%>"></fmt:formatNumber><fmt:formatNumbertype="currency"value="<%=d_2%>"currencySymbol="RMB"></fmt:formatNumber>百分比格式<fmt:formatNumbertype="percent"value="<%=d_3%>"></fmt:formatNumber><fmt:formatNumbertype="percent"value="<%=d_3%>"maxFractionDigits="2"></fmt:formatNumber>四舍五入<fmt:formatNumbervalue="<%=d_4%>"pattern=".##"></fmt:formatNumber>字符串格式化数字<% Stringstr="1234.4556";%><fmt:parseNumbervar="test_double"value="<%=str%>"></fmt:parseNumber><fmt:formatNumbertype="number"pattern=".##"value="${test_double}"></fmt:formatNumber>年月日:=<fmt:formatDatevalue="${requestScope.date}"type="date"/>时分秒:=<fmt:formatDatevalue="${requestScope.date}"type="time"/>年月日,时分秒=<fmt:formatDatevalue="${requestScope.date}"type="both"/>格式化成自定义格式<fmt:formatDatevalue="${requestScope.date}"pattern="yyyy/MM/ddHH:mm:ss"/><fmt:formatDatevalue="${requestScope.date}"type="both"dateStyle="short"/><fmt:formatDatevalue="${requestScope.date}"type="both"dateStyle="medium"/

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论