EL表达式的使用.docx
- 文档编号:9803819
- 上传时间:2023-05-21
- 格式:DOCX
- 页数:13
- 大小:17.99KB
EL表达式的使用.docx
《EL表达式的使用.docx》由会员分享,可在线阅读,更多相关《EL表达式的使用.docx(13页珍藏版)》请在冰点文库上搜索。
EL表达式的使用
第八章View层开发:
EL和JSTL
JSP/Servlet/Java2011-03-1423:
35:
26阅读33评论0 字号:
大中小 订阅
本章任务
升级E-Book电子书店系统
。
使用EL和JSTL简化页面开发
。
订单的处理
本章目标
。
理解并会使用EL
。
理解并会使用常用的JSTL标签
为什么需要EL和JSTL
。
JSP标准动作的局限
1、一般是操作javaBean的局限
2、javaBean的属性只能为基本数据类型
3、不能进行逻辑操作
publicclassSchool{
privateTeacherteacher;
privateStudentstudent;
……//属性的getter、setter方法
}(JavaBean属性不是基本类型,如何进行读取和赋值)
。
如何解决这个问题
1、EL和JSTL
什么是EL
。
什么是EL
1、EL即ExpressionLanguage(表达式语言)
。
EL的功能
1、与 getProperty/>类似 2、简化 Property/> 。 EL的语法 1、${EL.exprission} 2、${bean.name }或${ bean['name']} (${bean.name}实质是调用bean的getName()方法) EL的使用 。 EL在output.jsp中的使用 <%@pagecontentType="text/html;charset=GBK"> //param是EL的隐式对象,param.name等价于request.getParameter("name") userBeanid="bean"class="com.accp.ch08.Simplebean"scope="request"> setPropertyname="bean"property="name"value="${param.name}"/> setPropertyname="bean"property="age"value="25"/> 姓名: ${bean.name} 年龄: ${bean.age} 什么是JSTL 。 为了实现页面无脚本,还要借助于JSTL 。 什么是JSTL 1、JSTL(javaServerPagesStandardTadLibrary)JSP标准标签库 。 JSTL的优点 1、提供一组标准标签 2、可用户编写各种动态JSP页面 3、用户访问数据库 JSTL标准标签库介绍 。 JSTL标准标签库内的标签 。 JSTL标准标签库包括: (核心标签库) 。 通用标签---set----remove----out 。 条件标签---if 。 迭代标签---forEach (SQL标签库) 。 update 。 param 。 query JSTL的使用 。 使用JSTL的步骤 1、创建Web工程,选择JSTL1.1 2、在JSP页面添加taglib指令 3、使用JSTL标签 …… <%@tagliburl=http: //java.sun.jsp.jstl.coreprefix="c"%> …… 通用标签 。 通用标签的使用 1、set 2、out 3、remove …… //插入使用核心标签的指令 <%@tabliburl=“prefix=”c"%> //set标签用户给变量设置值和作用范围 //scope="page|request|session|appliaction“ setvar=”example"value="${100+1}"scope="session"/> outvalue="${example}"/> //out标签在页面上显示信息或变量值 removevar="example"scope="session"/> //remove标签用于删除作用域内的变量 …… 通用标签示例 。 通用标签的使用 …… userBeanid="titlesBean"class="com.accp.ch08.titleBean"/> setvar="titles"value="${titlesBean.titles}"scope="session" /> …… …… <% TitlesBeantitlesBean=newTitlesBean(); LIsttitels=TitlesBean.getTitles(); session.setAttribute("titles",titles); %> 条件标签示例 。 使用JSTL实现登录验证--register2.jsp <%@tagliburl="prefix="c“> userBeanid=”userManager"class="com.accp.ch08.UserManager"scope="request"> //给对象的属性赋值 setPropertyname="userManager"property="name"param="loginName"/> setPropertyname="userManager"property="password" param="password"/> //调用getValid()方法,进行用户验证 iftest="${userManager.valid}"> forwardpage="books.jsp"/> if> //如果返回true,转到books2.jsp否则返回到注册页面 iftest="${userManager.valid}"> forwardpage="register.jsp" /> if> 条件标签 。 条件标签的使用 if标签 …… <%@tagliburl=" prefix=”c" %> //test="${条件运算}"//test指定条件//运算符包含: ,<,==,and等 //var="varName"//var指定test条件的变量的名称 //scope="page"//scope指定范围 //page|request|session|appliaction iftest="${条件运算}"var="varName"scope="page"/> //条件为true时,执行代码 if> …… 迭代标签示例 。 迭代标签实现for循环功能 <%@tagliburl="prefix="c"%> <%@taglibimport="com.accp.ch08.TitlesBean"%> userBeanid="titlesBean"class="com.accp.ch08.TielesBean" /> setvar="tites"value="${titlesBean.titles}"scope="session" /> forEachvar="currentBook"items="${sessionScope.titles}"> ……//显示书籍信息 forEach> 迭代标签的使用 。 forEach <%@tagliburl="prefix="c"%> //var指定集合内数据的变量名称//items指定要遍历的集合对象 forEachvar="varName"items="collection"> //循环内容 forEach> …… 迭代标签与for的关系 。 迭代标签与for循环的对应关系---books2.jsp …… userBeanid="titlesBean"class="com.accp.ch08.TitlesBean"> setvar="titles"value="${titlesBean.titles}"scope="session"/> //sessionScope是EL表示作用域范围的隐式对象 forEachvar="currentBook"items="${sessionScope.titles}"/> isbn=${currentBook.ISBN}">${currentBook.title},${currentBook.editionNumber} forEach> …… <%for(inti=0;i currentBook=(BookBean)titles.get(i);%> Iisbn=${currentBook.ISBN}"> ${currentBook.title},${currentBook.editionNumber} <% } %> EL隐式对象 。 EL隐式对象小结 隐式对象包括 1、作用域访问对象 pageScope requestScope sessionScope appliactionScope 2、参数访问对象 param paramValues 3、JSP隐式对象 pageContext EL隐式对象介绍 对象名称 说明 pageScope 返回页面范围的变量名,这些名称已映射至相应的值 requestScope 返回请求范围的变量名,这些名称已映射至相应的值 sessionScope 返回会话范围的变量名,这些名称已映射至相应的值 appliactionScope 返回应用范围内的变量,并将变量名映射至相应的值 param 返回客户端的请求参数的字符串值 paramValue 返回映射至客户端的请求参数的一组值 pageContext 提供对用户的请求和页面信息访问 SQL标签 。 SQL标签可以直接在JSP页面操作数据库中数据 。 SQL标签的组成 1、setDataSource标签 2、update标签 3、query标签 4、param标签 SQL标签的update示例 。 使用update标签修改数据库中数据 <%@taglib url="prefix="c"%> <%@tagliburl="prefix="sql"%> ……//设置数据源 //使用SQL标签在数据表中添加数据 updatevar="order" dataSource="${conn}"> insertintoBoodOrder(username,zipcode,phone,creditcard,total)values('accp','1000020','8888866666','12345678901',50.00) update> update标签的使用 。 setDataSource标签 。 。 定义数据源 …… setDataSourcedriver="driverClass"url="databaseURL"user="username"password="userpass"var="datasource"/> setDataSource> …… update标签 。 对数据库的insert、update、delete操作 …… updatedataSource="datasource"var="varName"scope="page"> updatetestsetname='accp' update> …… param标签的使用 。 param标签 。 。 设置参数值 …… updatedataSource="datasource"var="varName"scope="page"> updatetestsetname=? whereid=? paramvalue="accp"/> //param标签设置参数 paramvalue="1"/> //param标签在update或query标签内使用 update> …… update标签与param标签 。 带参数的update标签 <%@tagliburl="prefix="c"%> <%@tagliburl="prefix="sql"%> //设置数据源 setDataSourcedriver="com.microsoft.jdbc.sqlserver.SQLServerDriver"url="jdbc: microsoft: sqlserver: //localhost: 1917;DatabaseName=books" user="sa"password="120010"var="conn"/> //update标签设置SQL语句 updatevar="order"dataSource="${conn}"> insertintoBookOrder(username,zipcode,phone,creditcard,total)values(? ? ? ? ? ); //param标签设置参数 paramvalue='${param["username"]}'/> paramvalue='${param["zipcode"]}'/> paramvalue='${param["phone"]}'/> paramvalue='${param["creditcard"]}'/> paramvalue='${100}'/> update> SQL标签的query示例 。 使用query标签查询数据库中数据 //导入JSTL标签 <%@tagliburl="prefix="c"%> <%@tagliburl="prefix="sql"> ……//设置数据源 //query标签得到结果集 queryvar=“rs”dataSource="${conn}"> selectorderid,username,zipcode,totalformBookOrderorderbyorderid query> query标签的使用 。 query标签 。 。 对数据库的select操作 …… //var="varName"//指定结果集名称 //dataSource="datasource"指定数据源 //scope="page"//指定范围 queryvar="varName"dataSource="datasource"scope="page"> select*fromtest; //sql语句 query> …… query标签示例 。 使用query标签查询数据,并在页面上显示 //导入JSTL标签 <%@tagliburl="prefix="c"> <%@tagliburl="prefix="sql"> //设置数据源 setDataSourcedriver="com.microsoft.jdbc.sqlserver.SQLServerDriver" url="jdbc: microsoft: sqlserver: //lcalhost: 1917;DatabaseName=books" user="sa" password="120010"var="conn"/> //query标签得到结果集 queryvar="rs"dataSource="${conn}"> selectorderid,username,zipcode,totalformBookOrderorderbyorderid query> //使用forEach标签循环输出结果集内容 订单: ${row.orderid}用户名: ${row.username} 邮编: ${row.zipcode}总价: ${row.total}
//EL表达式 //EL表达式更简洁、易懂
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- EL 表达式 使用