7-EL、JSTL、自定义标签、过滤器
更新时间:2023-05-12 23:44:01 阅读量: 实用文档 文档下载
- 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 ( int i=0;i<titles.size();i++){ currentBook = ( BookBean ) titles.get(i); %> <a href="displayBook.jsp?isbn=${currentBook.ISBN}"> ${currentBook.title},${currentBook.editionNumber} </a> <% } %>
EL隐式对象
EL隐式对象小结隐式对象
作用域访问对象 pageScope requestScope
参数访问对象
JSP隐式对象
param
pageContext
paramValues sessionScope applicationScope
EL隐式
对象
EL隐式对象介绍对象名称pageScoperequestScope sessionScope applicationScope
说明返回页面范围的变量名,这些名称已映射至相应的值返回请求范围的变量名,这些名称已映射至相应的值 返回会话范围的变量名,这些名称已映射至相应的值 返回应用范围内的变量,并将变量名映射至相应的值
paramparamValues pageContext
返回客户端的请求参数的字符串值返回映射至客户端的请求参数的一组值 提供对用户请求和页面信息的访问
SQL标签
SQL标签可以直接在JSP页面操作数据库中数据 SQL标签的组成setDataSource标签 update标签 query标签 param标签
SQL 标签库
setDataSource
update
query
param
SQL标签的update示例
使用update标签修改数据库中数据
<%@taglib uri="/jsp/jstl/core" prefix="c"%> BookOrder表中数据 <%@taglib uri="/jsp/jstl/sql" prefix="sql"%> …//设置数据源 <sql:update var="order" dataSource="${conn}"> insert into BookOrder(username,zipcode,phone,creditcard,total) values(‘leon', '1000020', ‘8888866666', '12345678901', 50.00) </sql:update> 使用SQL标签在数据表中添加数据
正在阅读:
7-EL、JSTL、自定义标签、过滤器05-12
洛阳市建筑工程规划管理技术规定04-07
浅谈指导学生进行课外阅读的有效尝试12-06
诉讼案件管理办法04-17
科高校长 - 尚强老师的拼搏之路12-14
如果我不曾爱过你11-03
常州施工组织设计10-01
网站功能描述书.doc05-02
共济会-谁统治着世界08-31
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- 过滤器
- 定义
- 标签
- JSTL
- EL
- 劳动经济视角下的人力资源管理
- 高中数学 1.2.2函数的表示法精讲精析 新人教A版必修1
- 2013年上半年人力资源部质量目标完成情况自查报告
- 东北财经大学研究生学位论文格式要求
- 浅析达&183;芬奇绘画艺术对文艺复兴时期绘画的影响.
- 焊接检验作业指导书_Book1
- 巧写动作,凸显个性
- 淘宝帐号注册与使用步骤与技巧_淘宝开店必备
- 小学数学五年级上册第六单元测试题
- 社科院研究生院金融硕士考研复试内容总结
- 小学生行为习惯养成教育主要内容
- 河滨220kV智能变电站数字化技术的应用
- 吉林省长春市十一中2014-2015学年高二上学期期中考试 数学文 Word版含答案
- 化学工业部标准HG20592-97 (法兰)
- 叶绿素a与叶绿素b含量的测定
- 燕子专列课堂实录
- 离散型随机变量的均值
- 柳孝图《建筑物理》课后习题及详解(建筑热工学)【圣才出品】
- 医疗质量管理总结
- 比2G手机耗电更惊人手机电池拖累3G运用