Javaweb学习笔记6—EL表达式与JSTL及自定义标签
来源:互联网 发布:淘宝海景房店铺氛围图 编辑:程序博客网 时间:2024/05/29 16:10
前几天博客被黑了,导致博客登陆不上,把前几天应该发的东西的东西重新发一遍
今天来讲javaweb的第六阶段学习。
EL表达式与JSTL及自定义标签是对上篇文章介绍的JSP的扩展,不能说是很重要的东西,但是也要了解。
老规矩,首先先用一张思维导图来展现今天的博客内容。
ps:我的思维是用的xMind画的,如果你对我的思维导图感兴趣并且想看到你们跟详细的备注信息,请点击下载
另外:如果图看不清的话请右击---在新窗口中打开会清楚很多。
一、EL表达式
1,EL简介
Expression Language。它不是一种语言,只是一个表达式。
用于将数据显示到JSP上。它的出现是替代java表达式的,从jsp2.0开始。
特点就是简单易用:
java表达式
<%List<Book> list = new ArrayList();%>
<%=list.get(0).getBookName() %>
EL表达式:
${list[0].bookname}E
2,EL表达式基本语法
${表达式}
注意:EL表达式是从四大域对象中获取数据(application,session,request,pagecontext);
细节:EL表达式中没有空指针异常,没有数组下标越界,没有字符串拼接。
3,EL表达式的数据获取
3.1获取数据
3.2 EL运算符
3.21empty运算符:
判断一个字符串是否为""或其他对象是否为null,同时还能判断集合中是否有元素。
3.22三元运算符:
4 EL中的隐式对象(共11个)
EL中的隐式对象
类型
对应JSP隐式对象
备注
PageContext
Javax.serlvet.jsp.PageContext
PageContext
完全一样
ApplicationScope
Java.util.Map
没有
应用层范围
SessionScope
Java.util.Map
没有
会话范围
RequestScope
Java.util.Map
没有
请求范围
PageScope
Java.util.Map
没有
页面层范围
Header
Java.util.Map
没有
请求消息头key,值是value(一个)
HeaderValues
Java.util.Map
没有
请求消息头key,值是数组(一个头多个值)
Param
Java.util.Map
没有
请求参数key,值是value(一个)
ParamValues
Java.util.Map
没有
请求参数key,值是数组(一个名称多个值)
InitParam
Java.util.Map
没有
全局参数,key是参数名称,value是参数值
Cookie
Java.util.Map
没有
Key是cookie的名称,value是cookie对象
5 EL表达式定义和使用函数
EL不支持字符串操作。
定义和使用函数的四步:
a.写一个普通的java类
(注意,普通Java类实现功能的方法必须是静态的,因为EL只能调用静态的方法)
b.在WEB-INF下创建一个xml,文件的扩展名为.tld
c.在jsp中使用taglib指令引入
d.在jsp中使用
二、JSTL
1 JSTL简介
JSP Standard Tag Libary:JSP中标准的标签库。
该标签库是由Apache实现的。
导入jar包:JavaEE的jar包中包含。
2 JSTL的组成
Core:核心标签库。通用逻辑处理
Fmt:国际化有关。
Functions:EL函数
SQL:操作数据库。不用
XML:操作XML。不用
3 JSTL的Core
分类
功能分类
标签名称
Core
表达式操作
out
set
remove
catch
流程控制
if
choose
when
otherwise
迭代操作
forEach
forTokens
URL操作
import
param
url
param
redirect
param
详情请参考【CORE核心标签.doc】
4 JSTL的Functions介绍
使用taglib指令导入:详情请看【第18章JSTL Functions标签库.doc】
fn:contains函数:用于判断在源字符串中是否包含目标字符串。
fn:containsIgnoreCase函数:用于判断在源字符串中是否包含目标字符串,并且在判断时忽略大小写。
fn:startsWith函数:用于判断源字符串是否以指定的目标字符串开头。
fn:endsWith函数:用于判断源字符串是否以指定的目标字符串结尾。
fn:indexOf函数:用于在源字符串中查找目标字符串,并返回源字符串中最先与目标字符串匹配的第一个字符的索引。
fn:replace函数:用于把源字符串中的一部分替换为另外的字符串,并返回替换后的字符串。
fn:substring函数:用于获取源字符串中的特定子字符串。
fn:substringBefore函数:用于获取源字符串中指定子字符串之前的子字符串。
fn:substringAfter函数:用于获取源字符串中指定子字符串之后的子字符串
fn:split函数:用于将源字符串拆分为一个字符串数组。
fn:join函数:用于将源字符串数组中的所有字符串连接为一个字符串。
fn:toLowerCase函数:用于将源字符串中的所有字符改为小写。
fn:toUpperCase函数:用于将源字符串中的所有字符改为大写。
fn:trim函数:用于将源字符串中的开头和末尾的空格删除。
fn:escapeXml函数:用于将源字符串中的字符"<"、">"、"""和"&"等转换为转义字符。
fn:length函数:用于返回字符串中的字符的个数,或者集合和数组的元素的个数
三、自定义标签
1自定义标签的作用
自定义Jsp中的程序处理,替换掉JSP中的Java脚本。
2自定义标签的编写步骤
实现标签自定义需要实现javax.servlet.jsp.tagext.SimpleTag或者继承javax.servlet.jsp.tagext.SimpleTagSupport
javax.servlet.jsp.tagext.SimpleTag中的方法:
void doTag():遇到自定义标签时由服务器调用执行。
JspTag getParent():得到父标签的引用。
void setJspBody(JspFragment jsp):由服务器调用,传入JSP的片段
void setJspContext(JspContext jc):由服务器调用,传入当前页面的PageContext
void setParent(JspTag parent):由服务器调用,传入他的父标签
第一步:写一个类继承SimpleTagSupport
第二步:创建一个.tld的xml文件在里面配置tag的信息。
第三步:在jsp中引入自定义标签
3自定义标签的作用4个
a、控制主体内容是否显示。
b、控制结束标签后的JSP内容不执行。
c、控制主体内容重复执行。
d、改变主体内容后再输出。
4自定义标签配置的body-cotent说明
<body-content>取值:
JSP:jsp中能出现啥,标签主体内容就能出现啥。给传统标签用的。简单标签一用就报错。
empty:没有主体内容。简单和传统标签都能用。
scriptless:给简单标签用的,说明主体内容是非脚本。
tagdependent:把主体内容的EL表达式当做普通字符串对待。
5自定义标签的案例
a.模拟for
- Javaweb学习笔记6—EL表达式与JSTL及自定义标签
- 【JavaWeb】EL表达式与JSTL标签
- web 学习笔记13-EL表达式,自定义标签JSTL
- JSP学习笔记—EL表达式和JSTL标签详解
- JavaWeb入门实战—EL表达式&JSTL标签
- Javaweb--- EL表达式 JSTL标准标签库
- JavaWeb学习笔记:初识EL表达式和JSTL
- JSTL标签EL表达式学习
- JSTL标签EL表达式学习
- EL表达式与JSTL标签
- JSTL标签与EL表达式
- JSTL标签与EL表达式
- EL表达式与JSTL标签
- JavaWeb——自定义标签与JSTL
- EL表达式和JSTL标签库学习笔记
- JSTL EL表达式学习笔记
- EL表达式 学习笔记(JSTL)
- 笔记之jsp标签、EL表达式、JSTL标签、函数、自定义标签
- 循环-04. 验证“哥德巴赫猜想”(20)
- O(1)时间复杂度逆序栈和排序栈
- Codeforces Round #297 (Div. 2)B Pasha and String
- 【Financial Markets】1. EONIA swap
- 阿里云管理终端总是黑屏
- Javaweb学习笔记6—EL表达式与JSTL及自定义标签
- 我的技术路
- vim常用操作精简篇(掌握这个vim就可以了)
- jdk1.6和jdk1.7下intern()方法的区别
- 微信中关闭网页输入内容时的安全提示
- poj 2429 GCD & LCM Inverse
- 如何选择摄像头
- strtok()函数解释
- 求数组中出现次数超过一半的数