Java-Web程序设计与案例教程-第5章-EL表达式与JSTL标签

PPT
  • 阅读 57 次
  • 下载 0 次
  • 页数 33 页
  • 大小 935.000 KB
  • 2022-11-12 上传
  • 收藏
  • 违规举报
  • © 版权认领
下载文档25.00 元 加入VIP免费下载
此文档由【小橙橙】提供上传,收益归文档提供者,本网站只提供存储服务。若此文档侵犯了您的版权,欢迎进行违规举报版权认领
Java-Web程序设计与案例教程-第5章-EL表达式与JSTL标签
可在后台配置第一页与第二页中间广告代码
Java-Web程序设计与案例教程-第5章-EL表达式与JSTL标签
可在后台配置第二页与第三页中间广告代码
Java-Web程序设计与案例教程-第5章-EL表达式与JSTL标签
可在后台配置第三页与第四页中间广告代码
Java-Web程序设计与案例教程-第5章-EL表达式与JSTL标签
Java-Web程序设计与案例教程-第5章-EL表达式与JSTL标签
还剩10页未读,继续阅读
【这是免费文档,您可以免费阅读】
/ 33
  • 收藏
  • 违规举报
  • © 版权认领
下载文档25.00 元 加入VIP免费下载
文本内容

【文档说明】Java-Web程序设计与案例教程-第5章-EL表达式与JSTL标签.ppt,共(33)页,935.000 KB,由小橙橙上传

转载请保留链接:https://www.ichengzhen.cn/view-2273.html

以下为本文档部分文字说明:

第5章EL表达式与JSTL标签本章内容EL语法Cookie的含义和用法Session的含义和用法Session的工作原理个人信息模块的实现基于MVC的购物车5.1EL语法EL表达式的语法非常简洁,都

是以“${”开始,以“}”符号结束的,请看下面的使用示例。上述语句希望从Session中获取key为“cart”的对象,判断其是否为空,如果不为空,就将这个cart对象中的total属性打印到浏览器中

。1<%2Objectcart=Session.getAttribute("cart");3if(cart!=null){4%>5<%=(ShoppingCart)cart.getTotal()%>6<%

}%>5.1EL语法5.1.1EL获取数据5.1.2EL执行运算5.1.3EL访问隐含对象5.1.1EL获取数据EL表达式可以轻松获取4大作用域中的JavaBean的属性,或获取数组、Collectio

n、Map类型集合的数据。EL表达式语句在执行时,会调用pageContext的findAttribute(Stringkey)方法,用标识符名称作为关键字,分别从page、request、session、application4个域中查找相应的对象,找到则返

回相应对象,找不到则返回""(空字符串)。语法如下:${作用域对象.属性名称}5.1.1EL获取数据其中,EL表达式中用于代表4大作用域的对象如表5.1所示,表5.1中的对象名称是EL表达式中的关键字,代表要访问的Servle

t的作用域对象。EL表达式对象对应作用域使用样例PageScopePage${PageScope.paramName}RequestScopeRequest${RequestScope.paramName}SessionScopeSession${SessionScop

e.paramName}ApplicationScopeApplication${ApplicationScope.paramName}表5.1EL表达式中的4大作用域5.1.2EL执行运算在EL表达式中可以使用运算符达到我们想要的结果,运算符按作用分

为算数运算符、关系运算符、逻辑运算符,还包括一些比较特殊的三元运算符和判空运算符等。1.算术运算符操作符使用示例+例如:${6+6},结果为12-例如:${4-3},结果为1*例如:${4*3},结果为12/或div

例如:${17/5}或${17div5},结果为3%或mod例如:${17%5}或${17mod5},结果为2表5.2EL表达式中的算术运算符5.1.2EL执行运算2.关系运算符表5.3EL中的关系运算符操作符使用示例>或gt例如:${8>9}或者${8gt9}>=或ge例如:$

{45>=9}或者${45ge9}<或lt例如:${4<9}或者${4lt9}<=或le例如:${9<=8}或者${9le8}==或eq例如:${4==4}或者${4eq4}!=或ne例如:${4!=3}

或者${4ne3}5.1.2EL执行运算3.逻辑运算符4.三元运算符在EL表达式中也存在三元算符,语法格式如下:${条件表达式?结果表达式1:结果表达式2}5.判空运算符使用EL判断某个对象是否为空值,可使用empty关键字,语法如下:${empty表达式}表5.4EL中的

逻辑运算符操作符使用示例&&或and例如:${false&&false}或者${falseandfalse}||或or例如:${true||false}或者${trueorfalse}!或not例如:${!true}(相当于${false})或者${nottrue}5.1.3EL访问隐含对象E

L表达式可以访问一系列对象,一共有11个,如表5.5所示。序号隐含对象名称描述1pageContext对应于JSP页面中的pageContext对象2pageScope代表page域中用于保存属性的Map对象3requestScope代表request域中

用于保存属性的Map对象4sessionScope代表session域中用于保存属性的Map对象5applicationScope代表application域中用于保存属性的Map对象6param表示一个保存了所有请求参数的Map对象7paramValues表示一个保存了所有请求参数的Map对

象,它对应于某个请求参数,返回的是一个string[]8header表示一个保存了所有http请求头字段的Map对象9headerValues表示一个保存了所有http请求头字段的Map对象,它对应于某个请求参数,返回的是一个string[]数组10cookie表示一个保存了所有cookie的

Map对象11initParam表示一个保存了所有Web应用初始化参数的Map对象表5.5EL表达式中的隐含对象5.2JSTLJSP标准标签库(JSPStandardTagLibrary,JSTL)是一个

不断完善的开放源代码的JSP标签库,是由Apache的jakarta小组来维护的。JSTL只能运行在支持JSP1.2和Servlet2.3规范的容器上,如Tomcat4.x。在JSP2.0中也是作为标准支持的。JSTL1.0发布于2002年6

月,由4个定制标记库(core、format、xml和sql)和一对通用标记库验证器(ScriptFreeTLV和PermittedTaglibsTLV)组成。5.2JSTL5.2.1EL获取数据

5.2.2EL执行运算5.2.3EL访问隐含对象5.2.1JSTL的安装一个标签库一般由两大部分组成:jar文件包和tld文件。1.jar文件包这个部分是标签库的功能实现部分,由Java来实现

,此部分不是本文的重点,故详细内容略。2.tld文件tld文件是用来描述标签库的,其内容为标签库中所有标签的定义,包括标签名、功能类及各种属性。5.2.1JSTL的安装如果要使用JSTL,则必须将jstl.jar和standard.jar文件放到classpath中,这些jar文

件全部存在于对应的zip文件中,暗装步骤如下:(1)从Apache的标准标签库中下载jakarta-taglibs-standard-current.zip包,如图5.6所示。(2)解压jakarta-taglibs-standard-1.1.2.zip包,将lib文件夹下的两个jar文

件(standard.jar和jstl.jar文件)加载到工程的编译路径下,不同的IDE的操作方式不同。(3)将标签库描述符文件导入到jsp页面,语法格式如下:<%@taglib(uri="tigLibURL"或tagDir="tagDir")prefix="tagPrefix"%>5.2.

1JSTL的安装在MyEclipse中,不需要进行上述的操作,因为在MyEclipse创建的Web工程中,会自动引入JavaEE开发相关的jar包,其中就包含了standard.jar和jstl.ja

r文件。在MyEclipse创建Web项目时,会提示用户选择JavaEE的版本,如果所选版本为5.0以上,则在工程中会增加JavaEEversionLibraries,其中会包含jstl-impl.jar文件(见图5.7)

,standard.jar和jstl.jar的内容就包含在jstl-impl.jar中。但是在其他IDE中,如Eclipse中,就需要手动将上述的jar包添加到工程中。5.2.2JSTL核心标签核心标签是最常用的JSTL标签。使用JSTL标签前,需要引入对应的标签库,在

JSP中引用核心标签库的语法如下:<%@taglibprefix="c"uri="http://java.sun.com/jsp/jstl/core"%>其中,“taglib”是JSP指令,功能是用来引入标签库,“taglib”指令中含有两个属性,分别是“prefix”和“ur

i”。“prefix”代表使用标签时指定的前缀,该前缀名称用户可自定义,习惯上起名为“c”;“uri”代表了JSTL核心标签库的唯一URI标志。常用的JSTL的核心标签如表5.6所示。5.2.2JSTL核心标签标签描述<c:out

>用于在JSP中显示数据,就像<%=...><c:set>用于保存数据<c:remove>用于删除数据<c:catch>用来处理产生错误的异常状况,并且将错误信息储存起来<c:if>与我们在一般程序中用的if一样<c:choose>本身只当作<c:when>和<c:otherwise>的父标

签<c:when><c:choose>的子标签,用来判断条件是否成立<c:otherwise><c:choose>的子标签,在<c:when>标签后,当<c:when>标签判断为false时被执行<c:import>检索一个绝对或相对URL,然后将其内容暴露给页面<c:forE

ach>基础迭代标签,接受多种集合类型<c:forTokens>根据指定的分隔符来分隔内容并迭代输出<c:param>用来给包含或重定向的页面传递参数<c:redirect>重定向至一个新的URL<c:url>使用可选的查询参数来创造一个URL表5.6JSTL

核心标签5.2.3JSTL格式化标签JSTL格式化标签可用来格式化并输出文本、日期、时间、数字。引用格式化标签库的语法如下:<%@taglibprefix="fmt"uri="http://java.sun.co

m/jsp/jstl/fmt"%>例如,日期在Java中是一个非常复杂的内容,如日期的国际化、日期和时间之间的转换、日期的加减运算、日期的展示格式等都是非常复杂的问题,我们一般通过使用JSTL格式化标签将一些结果值转

化成需要的格式进行输出。在JSTL库中常用的格式化标签如表5.9所示。5.2.3JSTL格式化标签表5.9JSTL格式化标签标签描述<fmt:formatNumber>使用指定的格式或精度格式化数字<fmt:parseNumber>解析一个代表着数字、货币或百分比的字符串<fmt:formatDa

te>使用指定的风格或模式格式化日期和时间<fmt:parseDate>解析一个代表着日期或时间的字符串<fmt:bundle>绑定资源<fmt:setLocale>指定地区<fmt:setBundle>绑定资源<f

mt:timeZone>指定时区<fmt:setTimeZone>指定时区<fmt:message>显示资源配置文件信息<fmt:requestEncoding>设置request的字符编码5.2.4JSTL函数JSTL包含一

系列标准函数,如表5.12所示,其中大部分是通用的字符串处理函数。引用JSTL函数库的语法如下:<%@taglibprefix="fn"uri="http://java.sun.com/jsp/jstl/functions"%>函数描述fn:contains()测试输入的字符串是否包含指

定的子串fn:containsIgnoreCase()测试输入的字符串是否包含指定的子串,大小写不敏感fn:endsWith()测试输入的字符串是否以指定的后缀结尾fn:escapeXml()跳过可以作为XML标记的字符f

n:indexOf()返回指定字符串在输入字符串中出现的位置fn:join()将数组中的元素合成一个字符串然后输出fn:length()返回字符串长度fn:replace()将输入字符串中指定的位置替换为指定的字符串然后返回fn:split()将字符串

用指定的分隔符分隔然后组成一个子字符串数组并返回fn:startsWith()测试输入字符串是否以指定的前缀开始fn:substring()返回字符串的子集fn:substringAfter()返回字符串在指定子串之后的子集fn:substringBefore()返回字

符串在指定子串之前的子集fn:toLowerCase()将字符串中的字母转为小写fn:toUpperCase()将字符串中的字母转为大写fn:trim()移除首位的空白符表5.12JSTL函数5.3简易购物商城

系统本节将对第4章的案例进行改写,主要针对JSP页面上的显示部分,将使用EL和JSTL替换JSP页面中的JSP标签、JSP表达式、JSP脚本等内容,如图5.23所示。图5.23简易购物商城首页效果5.3简易购物商城系统5.3.1首页模板5.3.2个人中心5

.3.3全部商品列表5.3.4购物车5.3.1首页模板首先对“页头”和“导航”的公用页面进行改写,具体代码如下。在文件中首先使用<%@tagliburi="http://java.sun.com/jsp/jstl/core"prefix

="c"%>引入JSTL核心标签库。(1)top.jsp1<%@pagelanguage="java"pageEncoding="utf-8"%>2<%@taglibprefix="c"uri="http://java.sun.com/jsp/jstl/core"%>3前端商城欢迎您

,<c:outvalue="${user.username}"escapeXml="false">4<ahref="login.jsp">请登录</a></c:out>5.3.1首页模板(2)left.jspf1<%@pagelangu

age="java"import="java.util.*"pageEncoding="utf-8"%>2<table>3<tr><td>4<ahref="${pageContext.servletContext.contextPath}/web/GetPs

ersonalServlet">5个人中心</a></td>6</tr>7<tr><td>8<ahref="${pageContext.servletContext.contextPath}/web/getAllAuction">9全部商品</a></td

></tr>10<tr><td><ahref="${pageContext.servletContext.contextPath}/web/CartListServlet">11我的购物车</a></td></tr>12</table>5.3.2个人中心当用户已经完善过个人信息后,点击“个人中

心”链接,页面跳转至如图5.24所示的页面,我们将原来使用的<jsp:useBean>和<jsp:getProperty>标签用JSTL替换。图5.24个人中心页面效果5.3.2个人中心创建WebRoot/

web/personal文件夹,存放和个人信息相关的页面文件,在该文件夹下创建personalInfo.jsp文件,使用EL表达式来进行数据展示,其中<body></body>标签之间的代码如下。5.3.2个人中心1<body>2<table>3<tr>

<tdcolspan="2"align="right">4<jsp:includepage="/common/web/top.jsp"/>5</td></tr>6<trvalign="top">7<tdw

idth="20%">8<%@includefile="/common/web/left.jspf"%>9</td>10<tdalign="center">11<c:choose>12<c:whentest="${emptyperso

nalInfo}">13您还没有完善信息,<ahref="personalPage1.jsp">请完善信息</a>14</c:when>15<c:otherwise>16<table>17<tr>18<td>年龄:</td>19<td>${pers

onalInfo.age}</td>20</tr>21<tr>22<td>性别:</td>23<td>${personalInfo.gender}</td>24</tr>25<tr>26<td>家庭住址:</

td>27<td>${personalInfo.address}</td>28</tr>29<tr>30<td>联系方式:</td>5.3.2个人中心31<td>${personalInfo.tel}</td>32</tr

>33<tr>34<td>email:</td>35<td>${personalInfo.email}</td>36</tr>37<tr>38<td>毕业院校:</td>39<td>${personalInfo.graduateSchool}<

/td>40</tr>41<tr>42<td>最高学历:</td>43<td>${personalInfo.highestEducation}</td>44</tr>45<tr>46<td>专业方向:</td>

47<td>${personalInfo.major}</td>48</tr>49</table>50</c:otherwise>51</c:choose>52</td>53</table>54</body>5.3.3全部商品列表当已登录用户

点击“全部商品”链接时,系统会展示如图5.25所示的商品列表结果页,每个商品都有一个“加入购物车”的链接。图5.25全部商品列表效果5.3.3全部商品列表创建WebRoot/web/auction文件夹,存放和商品相关的页面文件,在该文件夹下创建auctionL

ist.jsp文件,用来显示系统中的所有商品列表,使用EL表达式来进行数据展示,页面核心代码如下。1<tableborder="1">2<tr>3<td>商品编号</td>4<td>商品标题</td>5<td>商品描述</td>6<td>商品价

格</td>7<td></td>8</tr>9<c:forEachitems="${auctionList}"var="auction">10<tr>11<td>${auction.id}</td>12<td>${auct

ion.title}</td>13<td>${auction.description}</td>14<td>${auction.price}</td>15<td>16<ahref="${pageContext.servletContext.cont

extPath}/web/18AddCartServlet?id=${auction.id}">加入购物车</a>20</tr>21</c:forEach>5.3.4购物车当用户点击“我的购物车”链接,或者将某个商品加入到购物车中时,都会显示如图5.

26所示的“我的购物车”页面。图5.26“我的购物车”页面5.3.4购物车创建WebRoot/web/shoppingCart文件夹,存放和购物车相关的页面文件,在该文件夹下创建myShopping

Cartt.jsp文件,用来显示当前用户购物车内的商品列表,页面核心代码如下。5.3.4购物车1<tableborder="1">2<tr>3<tdcolspan="7"align="center">我的购物车</td>4</tr>5<tr>6<td></td>7<t

d>商品编号</td>8<td>商品名称</td>9<td>商品数量</td>10<td>商品单价</td>11<td>商品总价</td>12<td>操作列表</td>13</tr>14<c:forEachitems="${cartList}"var="cart">1

5<tr>16<td>17<inputtype="checkbox"name="slctedOrder"value="${cart.auctionDO.id}">18</td>19<td>${cart.au

ctionDO.id}</td>20<td>${cart.auctionDO.title}</td>21<td>${cart.number}</td>22<td>${cart.auctionDO.price}</td>2

3<td>${cart.totlePrice}</td>24<td><ahref="${pageContext.servletContext.contextPath}25/web/RemoveCartServlet?id=${cart.auct

ionDO.26id}">删除此商品</a>27</td>28</tr>29</c:forEach>30<tr>31<tdcolspan="7"align="right"><a32href="${pa

geContext.servletContext.contextPath}/web/getAllAuction">33继续购物</a></td>34</tr>

小橙橙
小橙橙
文档分享,欢迎浏览!
  • 文档 25747
  • 被下载 7
  • 被收藏 0
相关资源
广告代码123
若发现您的权益受到侵害,请立即联系客服,我们会尽快为您处理。侵权客服QQ:395972555 (支持时间:9:00-21:00) 公众号
Powered by 太赞文库
×
确认删除?