7-EL、JSTL、自定义标签、过滤器
EL、JSTL、自定义标签、过滤器
本章目标
理解并会使用EL 理解并会使用常用的JSTL标签 描述过滤器 理解过滤器生命周期 实现过滤器
为什么需要EL和JSTL
JSP标准动作的局限一般是操作JavaBean的属性 JavaBean的属性只能为基本数据类型 不能进行逻辑操作
如何解决这个问题EL和JSTLpublic class School{ 请求 private Teacher teacher; private Student student; 响应 …//属性的getter、setter方法 }
JSP 页面静态内容 动态内容
JavaBean属性不是基本类 型,如何进行读取和赋值
什么是EL
什么是ELEL即Expression Language(表达式语言)
EL的功能与<jsp:getProperty />类似 简化<jsp:getProperty />
EL的语法${ EL exprission } ${ } 或 ${ bean['name'] }${}实质是调用bean的getName()方法
EL的使用
EL在output.jsp中的使用<%@page contentType="text/html; charset=GBk"%> <html> param是EL的隐式对象,等价 <head> 于request.getParameter("name"); <title>EL的使用</title> <jsp:useBean id= " bean" class="javaee.sg.ch07.Simplebean" scope="request" /> <jsp:setProperty name= " bean" property="name" value="${}" /> <jsp:setProperty name= " bean " property="age" value= "25" /> </head> <body> 姓名:${} 年龄:${bean.age} EL表达式 EL表达式更简洁、易懂 </body> </html> output.jsp
什么是JSTL
为了实现页面无脚本,还要借助于JSTL 什么是JSTLJSTL(JavaServerPages Standard Tag Library)JSP标准标 签库
JSTL 的优点
提供一组标准标签
可用于编写各种 动态 JSP 页面
用于访问数据库
JSTL标准标签库介绍
JSTL标准标签库内的标签JSTL标准标签库
核心标签库
SQL标签库 update
通用标签 set remove out
条件标签
迭代标签
param query
if
forEach
JSTL的使用
使用JSTL的步骤创建Web工程,选择JSTL1.1 在JSP页面添加taglib指令 使用JSTL标签…… <%@ taglib uri="/jsp/jstl/core" prefix="c"%> ……
通用标签
通用标签的使用set out remove
插入使用核心标签的指令 … <%@ taglib uri="/jsp/jstl/core" prefix="c"%> <body> <c:set var= "example" value="${100+1}" scope="session" /> <c:out value="${example}"/> set 标签用于给变量 out 标签在页面上显示信息或变量值 设置值和作用范围
scope= "page|request|session|application" <c:remove var= "example" scope="session"/> </body> remove 标签用于删除作用域内的变量 …
通用标签示例
通用标签的使用Books2.jsp …… <jsp:useBean id= "titlesBean" class="javaee.sg.ch03.TitlesBean" />
<c:set var=" titles" value="${titlesBean .titles}" scope="session" /> …… 等价等价 …… <% TitlesBean titlesBean = new TitlesBean(); List titles = titlesBean.getTitles(); session.setAttribute( "titles", titles ); %> …… books.jsp
条件标签示例 使用JSTL实现登录验证 -- register2
.jsp
<%@ taglib uri="/jsp/jstl/core" prefix="c"%> <jsp:useBean id="userManager" class="erManager" 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> 调用getValid()方法,进行用户验证
如果返回true,转到books2.jsp, 否则返回到注册页面
条件标签
条件标签的使用if标签…… <%@ taglib uri="/jsp/jstl/core" prefix="c"%>var指定test条件的变量的名称 <body> <c:if test= "${ 条件运算 }" var= "varName" scope= "page" /> //条件为true时,执行的代码 scope指定范围 </c:if> test指定条件 …… page|request|session|application 运算符包含:,<,==,and等
常见错误 JSTL标签使用的jar包
加载JstlCoreTLV类失败
JstlCoreTLV类在 standard.jar包内 解决办法:把jstl.jar、standard.jar 拷贝到项目的WEB-INF/lib下
常见错误 部署描述文件路径错误
标签的部署描述文件路径错误
应该是uri="/jsp/jstl/core" …… <%@ taglib uri="/jstl/core" prefix="c"%> ……
迭代标签示例 迭代标签实现for循环功能
books2.jsp <%@ taglib uri="/jsp/jstl/core" prefix="c"%> 使用迭代标签实现for循环功能 <%@page import="javaee.sg.ch03.TitlesBean"%>
<jsp:useBean id= "titlesBean" class="javaee.sg.ch03.TitlesBean" /><body> <c:set var= "titles" value="${titlesBean.titles}" scope="session" /> <c:forEach var="currentBook" items="${sessionScope.titles}"> …//显示书籍信息 </c:forEach> </body>
迭代标签
迭代标签的使用forEach… <%@ taglib uri="/jsp/jstl/core" prefix="c"%> <body> <c:forEach var= "varName" items= "collection" >
//循环内容</c:forEach> </body> …
var指定集合内 数据的变量名称
items指定要遍 历的集合对象
迭代标签与for的关系 迭代标签与for循环的对应关系 -- books2.jsp… <jsp:useBean id= "titlesBean" class="javaee.sg.ch03.TitlesBean" /> <c:set var= "titles" value="${titlesBean.titles}" scope="session" /> <c:forEach var="currentBook" items="${sessionScope.titles}"> <a href="displayBook.jsp?isbn=${currentBook.ISBN}"> ${currentBook.title},${currentBook.editionNumber} </a> sessionScope是EL表示 等价 </c:forEach> 作用域范围的隐式对象 …
<% for ( …… 此处隐藏:2863字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [专业资料]《蜜蜂之家》教学反思
- [专业资料]过去分词作定语和表语1
- [专业资料]苏州工业园区住房公积金贷款申请表
- [专业资料]保安管理制度及处罚条例细则
- [专业资料]2018年中国工程咨询市场发展现状调研及
- [专业资料]2015年电大本科《学前教育科研方法》期
- [专业资料]数字信号处理实验 matlab版 离散傅里叶
- [专业资料]“十三五”重点项目-虎杖白藜芦醇及功
- [专业资料]2015-2020年中国竹木工艺市场需求及投
- [专业资料]国际贸易理论与实务作业五:理论案例分
- [专业资料]财政部修订发布事业单位会计制度
- [专业资料]BCA蛋白浓度测定试剂盒(增强型)
- [专业资料]工程进度总计划横道图模板(通用版)
- [专业资料]七年级地理同步练习(天气与气候)
- [专业资料]X光安检机介绍火灾自动报警系统的组成
- [专业资料]衢州市人民政府办公室关于印发衢州市区
- [专业资料]经济全球化及其影响[1]
- [专业资料]质粒DNA限制性酶切图谱分析
- [专业资料]国家安全人民防线工作“六项”制度
- [专业资料]劳动力投入计划及保证措施
- 电子账册联网监管培训手册
- 人教版语文七年级上第1课《在山的那边
- 对我区担保行业发展现状的思考与建议
- 平面四边形网格自动生成方法研究
- 2016年党课学习心得体会范文
- 如何设置电脑定时关机
- 全球最美人妖排行榜新鲜出炉
- 社会实践调查报告及问卷
- Visual Basic习题集
- 《鱼我所欲也》课件2
- 浙江省会计从业资格考试试卷
- 全遥控数字音量控制的D 类功率放大器资
- 鞍钢宪法与后福特主义
- 电表的改装与校准实验报告(1)
- 2014年高考理科数学真题解析分类汇编:
- Windows 7 AIK 的使用
- 风电场全场停电事故应急处置方案
- 化工原理选填题题库(下)
- 关于产学研合作教育模式的学习与思考
- 西安先锋公馆项目前期定位报告




