您的位置:首页 > 编程语言 > Java开发

教案:《开发基于JSPServletJavaBean的网上交易系统》第8章 View层开发:EL和JSTL

2008-05-25 21:19 726 查看
授课教师:牟勇
课时:100分钟

l 本章技能目标
n理解并会使用EL
n理解并会使用常用的JSTL
l 本章重点
nEL表达式
nJSTL标准标签库标签
l 本章难点
nJSTL中的条件标签和循环标签
l 本章工作任务
n升级E-Book电子书店
u 使用EL和JSTL简化页面
u 订单的处理
l 整章授课思路
n本章依次讲解5个问题:为什么需要EL,EL的作用,什么是JSTL,JSTL中核心标签库的使用,SQL标签的使用
n为什么需要EL:由于JSP标准动作有其局限性,不能达到JSP页面中无Java代码的目的。所以要使用EL与JSTL来共同完成。
nEL的作用:读取变量值,相对于JSP标准动作,EL不仅可以读取JavaBean属性值,还可以读取其他的变量值。
n什么是JSTL:使用EL只能读取变量,但是不能设置和控制程序流程,要使用JSTL来协助
nJSTL中核心标签库的使用:分别介绍核心标签库中的通用标签,条件标签和迭代标签,讲解语法和作用。
nSQL标签的使用:在JSP页面中,可以使用SQL标签来访问和操作数据库数据。
回顾: [5分钟]
我们已经学过的JSP标准动作有哪些?
JSP标准动作的优点是什么?
请说明useBean中的scope属性的值的意义?
预习检查: [5分钟]
什么是EL和JSTL?
EL的语法是什么?
JSTL分为几种标签库?
课程知识点讲解:
为什么需要EL:[10分钟]
问题:JSP标准动作的局限
v 一般是操作JavaBean的属性
v JavaBean的属性只能为基本数据类型
v 不能进行逻辑操作
例如:

public class School{

private Teacher teacher;
private Student student;

…//属性的getter、setter方法

}

这里的两个私有对象都不是基本数据类型,如何得到我们想要的值呢?
问题:如何解决这个问题
答案:EL和JSTL

EL的作用[10分钟]
什么是EL
v EL即Expression Language(表达式语言)
EL的功能
v 与<jsp:getProperty />类似
v 简化<jsp:getProperty />
EL的语法
v ${ EL exprission }
v ${ bean.name } 或 ${ bean['name'] }
着重讲解“.”操作符和“[]”操作符的使用和区别。“[]”可以操作数组或集合对象。
另外,强调“.”操作符实质是调用getXXX()方法。
EL的使用

<%@page contentType="text/html; charset=GBk"%>
<html>
<head>
<title>EL的使用</title>
<jsp:useBean id= " bean" class="y2javaee.sg.ch07.Simplebean"
scope="request" />
<jsp:setProperty name= " bean" property="name" value="${param.name}" />
<jsp:setProperty name= " bean " property="age" value= "25" />
</head>
<body>
姓名:${bean.name} <br />
年龄:${bean.age}
</body>
</html>

教员应强调使用EL更简单,更易懂。
什么是JSTL[15分钟]
引入:为了实现页面无脚本,还要借助于JSTL。
问题:什么是JSTL
答案:JSTL(JavaServerPages Standard Tag Library)JSP标准标签库
它是一组标签,可用于编写各种动态的JSP页面。可用于访问数据库。
JSTL标准标签库介绍
教员应简单介绍JSTL标准标签库的组成。
演示在Eclipse中如何导入JSTL。
JSTL中核心标签库的使用[25分钟]
通用标签的使用
set
out
remove


<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<body>
<c:set var= "example" value="${100+1}" scope="session" />

<c:out value="${example}"/>

<c:remove var= "example" scope="session"/>
</body>


教员应详细解释代码的意思。重点说明各属性的含义。
教员演示通用标签的用法。
条件标签

……
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>

<body>
<c:if test= "${ 条件运算 }" var= "varName" scope= "page" />
//条件为true时,执行的代码
</c:if>
……

教员重点说明条件标签的各属性的含义。
条件标签示例

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<jsp:useBean id="userManager" class="y2javaee.sg.ch07.UserManager"
scope="request" />
<jsp:setProperty name="userManager" property="name" param="loginName" />
<jsp:setProperty name="userManager" property="password" param="password" />
<c:if test="${userManager.valid}">
<jsp:forward page="books2.jsp" />
</c:if>
<c:if test="${!userManager.valid}">
<jsp:forward page="register.html" />
</c:if>

常见错误
JSTL标签使用的jar
JSTL标签都是放在jar包中的。
解决方案:把jstl.jar、standard.jar拷贝到项目的WEB-INF/lib下
部署描述文件路径错误
<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c"%>
应为:<%@ taglib uri=uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
迭代标签


<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<body>
<c:forEach var= "varName" items= "collection" >
//循环内容
</c:forEach>
</body>


教员应说明标签各属性的意义。
迭代标签示例

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@page import="y2javaee.sg.ch03.TitlesBean"%>
<jsp:useBean id= "titlesBean" class="y2javaee.sg.ch03.TitlesBean" />
<body>
<c:set var= "titles" value="${titlesBean.titles}" scope="session" />
<c:forEach var="currentBook" items="${sessionScope.titles}">
…//显示书籍信息
</c:forEach>
</body>

教员应详细说明代码含意。
EL隐式对象
教员应详细介绍以上图中提到的各个隐式对象,说明,各隐式对象其实就是用来传递数据的对象,它们的作用就是用来存取数据的。
SQL标签库的使用[20分钟]
教员应解要说明上图中提到的四个标签。
SQL标签的update示例

<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql"%>
…//设置数据源
<sql:update var="order" dataSource="${conn}">
insert into BookOrder(username,zipcode,phone,creditcard,total)
values('accp', '1000020', ‘8888866666', '12345678901', 50.00)
</sql:update>

教员应说明update标签的用法。
setDataSource标签

<sql:setDataSource driver= "driverClass" url= "databaseURL"
user= "username" password= "userpass"
var= " datasource "/>

教员应说明datesource标签的用法。
param标签的使用
当SQL语句需要传参时使用。


<sql:update dataSource= "datasource" var="varName" scope="page" >
update test set name=? where id=?
<sql:param value= "accp" />
<sql:param value= "1" />
</sql:update>


教员应说明以上代码的含义。
SQL标签的query示例

<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql"%>

…//设置数据源

<sql:query var="rs" dataSource="${conn}">

select orderid,username,zipcode,total from BookOrder order by orderid

</sql:query>

教员应说明以上代码的含义。
强调update标签主要是执行select以外的SQL语句的,而query标签是执行select语句的。
本章总结 [10分钟]
EL的基本语法是什么?
JSTL中常用的标签有哪些?
为什么要使用EL和JSTL?
如何使用SQL标签进行数据查询和显示?
考核点
EL表达式的基本语法。
EL表达式的隐式对象。
JSTL标签的具体运用。
扩展部分:
暂无
学员问题汇总:
暂无
作业:
习题1:193页至194页选择题
习题2:194页第1,2,3,4题
习题3:预习第九章,试做课后的选择题
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐