6.2 任务2:使用JSTL和EL显示漫画列表

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

任务实现
一、修改漫画实体类
由于在漫画列表中包含漫画类别名称,所以需要对漫画实体类Cartoon进行修改,为 其增加类别对象成员。 关键代码如下: public class Cartoon {
//其他代码省略 private CartoonType type; //把类别对象作为属性 public CartoonType getType() { return type; } public void setType(CartoonType type) { this.type = type; } }
任务实现
二、完成数据访问层代码
1、新增数据访问接口方法 在数据访问接口CartoonDao中,新增List<Cartoon> getCartoonList()方法,用于获取漫画列表。
任务实现
2、实现数据访问方法 在数据访问类(CartoonDaoImpl)中,结合通用BaseDao,实现数据访问接口中新增的方法。
begin="beginIndex" end="endIndex" step="step">主体内容 </c:forEach> 其中,var属性是对当前成员的引用;items指被迭代的集合对象;varStatus属性用于存放var引用 的成员的相关信息,如索引等;begin属性表示开始位置,默认为0,该属性可以省略;end属性 表示结束位置,该属性可以省略;step表示循环的步长,默认为1,该属性可以省略。
6.2.3 通用标签库
2、将value值设置到对象的属性中。 语法:<c:set value="value" target="target" property="property" /> 其中,target属性对应操作的JavaBean对象,可以使用EL表达式来表示;property属性对应JavaBean对象的属 性名;value属性是赋予JavaBean对象属性的值。
一、<c:set>标签 用于设置作用域变量的值或者作用域变量的属性值,其语法格式分为如下两种: 1、将value值存储到范围为scope的变量variable中。 语法:<c:set var="variable" value="value" scope="scope"/> 其中,var属性的值是设置的变量名;value属性的值是赋予变量的值;scope属性对应的是变量的作用域,可 选值有page、request、session和application。 例如,在请求范围内将变量currentIndex的值设置为6,用<c:set>标签可以写成 < c:set var="currentIndex" value ="6" scope="request"/>
6.2 任务2:使用JSTL和EL显示漫画列表
任务描述
任务描述
使用JSTL和EL显示漫画列表(暂不考虑 分页)。
技能目标
技能目标
• 理解JSTL的概念与应用 • 能够使用JSTL进行逻辑控制
6.2.1 JSTL概述
JSTL的全称是JSP Standard Tag Library,即JSP标准标签库。它包含了在开发JSP页面时经常用到的一组 标准标签,这些标签提供了一种不用嵌入Java代码就可以开发复杂的JSP页面的途径。
<c:set var="a" value="hello"/> <c:if test="${not empty a }"> <c:out value="${a }"/> </c:if>
6.2.4 条件标签库
二、<c:choose>标签 <c:choose>、<c:when>和<c:otherwise>一起实现互斥条件的执行,类似于Java语言的if - else if - else语句。 语法:<c:choose var="varName" scope="scope"> <c:when test="condition">主体内容</c:when> <c:otherwise>其他内容</c:otherwise> </c:choose > 其中,<c:choose>是作为<c:when>和<c:otherwise>的父标签使用的,除了空白字符外, <c:choose>的标签体只能包含这两个标签;<c:when>标签必须有一个直接的父标签<c:choose>,而且必须在同一 个父标签下的<c:otherwise>标签之前出现;在同一个父标签<c: choose>中,可以有多个<c:when>标签;<c:otherwis e>标签必须有一个直接的父标签<c:choose>,而且必须是<c:choose>标签中最后一个嵌套的标签。 在运行时,判断<c:when>的测试条件是否为true,第一个测试条件为true的<c:when>标签体被JSP 容器执行。如 果没有满足条件的<c:when>标签,那么<c:otherwise>的标签体将被执行。
移除后:<c:out value="${msg}" default="no msg"/> <br>
6.2.4 条件标签库
JSTL的条件标签包括<c:if>、<c:choose>、<c:when>和<c:otherwise>标签。 一、<c:if>标签 <c:if>标签用于实现Java语言中if语句的功能。 语法:<c:if test="condition" var="varName" scope="scope"/>
6.2.2 JSTL核心标Байду номын сангаас库简介
JSTL由四个定制标签库(core、fmt、xml、sql)组成。其中,最常用的core即是JSTL核心标签库,它提供 了定制操作,通过限制作用域的变量管理数据,以及执行页面内容的条件和迭代操作。
6.2.3 通用标签库
通用标签用于在JSP 页面内设置、显示和删除变量,它包含三个常用标签:<c:set>、<c:out>和<c:remove>。
6.2.4 条件标签库
6.2.5 迭代标签库
<c:forEach>标签有两种语法格式,一种用于遍历集合对象的成员,另一种用于使语句循环执行指 定的次数。 1、遍历集合对象的成员 语法格式如下: <c:forEach var="varName" items="collectionName" varStatus="varStatusName"
主体内容 </c:if> 其中,test属性是判断条件,当condition (可以用EL表达式表示) 的结果为true时,会执行主体内容,如果为false 则不会执行;var属性用于定义变量,该变量存放判断的结果,该属性可以省略;scope 属性是指var定义变量的存 储范围,可选值有可选值有page、request、session和application,该属性可以省略。
任务实现
三、完成业务逻辑层代码 在业务逻辑接口(CartoonBiz)中,新增List<Cartoon> getCartoonList()方法,用于获取漫画列表;并在业务逻 辑类(CartoonBizImpl)中,通过调用数据访问层的方法,实现这个方法。
任务实现
四、完成漫画列表页面 在WebRoot\adminpages下创建漫画列表页面cartoonList.jsp,并在页面中调用业务逻辑方法,获取漫画列表。 然后运用<c:forEach>标签和EL表达式显示漫画列表。关键代码如下: <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <%@ page import="com.ct.biz.*,com.ct.biz.impl.*,com.ct.entity.*" %> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <!--其他代码省略--> <% CartoonBiz ctb = new CartoonBizImpl();
List<Cartoon> ctList = ctb.getCartoonList();//一次性获取所有数据,暂不考虑分页 request.setAttribute("cartoonList", ctList) ; %>
6.2.3 通用标签库
【例1】 ${"<a href='www.baidu.com'>百度</a>"} <c:out value="<a href='www.baidu.com'>百度</a>"></c:out> <c:out escapeXml="false" value="<a href='www.baidu.com'>百度</a>"></c:out>
6.2.3 通用标签库
【例2】 用<jsp:useBean>动作创建对象type,用<c:set>标签为其typeName属性赋值,用<c:out>标签输出结果。
6.2.3 通用标签库
三、<c:remove>标签 与<c:set>标签的作用相反,<c:remove>标签用于移除指定作用域内的指定变量。 语法:<c:remove var="variable" scope="scope"/> 其中,var属性是指待移除的变量名; scope属性对应待移除变量的所在访问,可选值有page、request、sessi on和application,默认为page。
6.2.3 通用标签库
二、<c:out>标签 <c:out>标签用于将计算的表达式结果输出显示,类似于JSP中的<%= %>。但是功能更加强大,代码也更加 简洁,方便页面维护。其语法格式分为指定默认值和不指定默认值两种形式。 1、不指定默认值的语法:<c:out value="value" /> 其中,value属性表示需要输出的表达式的运算结果,可以通过EL表达式来获取。 2、指定默认值的语法:<c:out value="value" default="default" /> 其中,default属性是value属性的值为空时输出的默认值。另外,<c:out>标签还有一个escapeXml属性,表示 是否转换特殊字符,用于指定在使用<c:out>标签输出诸如< 、 > 、' 、" 、&之类在HTML和XML中具有特殊意 义的字符时是否应该进行转义。escapeXml属性默认为true,表明会自动进行转义处理。
6.2.5 迭代标签库
6.2.5 迭代标签库
2、指定语句的执行次数 语法格式如下: <c:forEach var="varName" varStatus="varStatusName"
begin="beginIndex" end="endIndex" step="step">主体内容 </c:forEach>
6.2.1 JSTL概述
2、在需要使用JSTL的JSP页面中使用taglib指令导入标签库描述符文件。 要使用JSTL核心标签库,必须在JSP页面上方增加如下taglib指令: <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> 其中,taglib指令通过uri属性引用某个标签库的配置文件,JSP页面中通过prefix属性指定的前缀即可使用 该标签库中的某个标签功能,语法为<c:标签名>。
没有值:<c:out value="${msg}" default="no msg"/> <br> <c:set var="msg" value="Hello JSTL" scope="page"/>
设置值:<c:out value="${msg}" default="no msg"/> <br> <c:remove var="msg"/>
在项目中如何使用JSTL标签? 需要如下两个步骤: 1、在工程中引用JSTL的两个jar文件和标签库描述符文件(扩展名为.tld)。
和使用JDBC连接数据库类似,使用JSTL标签库也必须在工程中导入相关的包(jstl.jar和standard.jar)。 另外,标签库描述符文件也是必需的。(MyEclipse中已经集成了JSTL)
相关文档
最新文档