JSP与EL表达式
来源:互联网 发布:redhat yum 编辑:程序博客网 时间:2024/06/05 19:47
EL表达式作用:
1.主要用于获取数据对象或变量值
EL表达式主要用于替代JSP页面的脚本表达式(<%=expression%),以从各种类型的web域中检索java对象2.在JSP页面执行一些基本关系运算、逻辑运算和算术运算
3.获取web开发常用对象
EL表达式定义了一些隐式对象,利用这些隐式对象,可以轻松获得对web常用对象(JSP九大内置对象)的引用
4.调用Java方法
EL表达式允许用户自定义EL函数,以在JSP页面中通过EL表达式调用Java类的方法
EL自定义函数开发与应用的3个步骤:
1.编写一个Java类的静态方法
2.编写标签库描述(tld)文件,在tld文件中描述自定义函数
3.在JSP页面导入和使用自定义函数
在JSP页面中可以使用形如${标识符}的形式,默认通知JSP引擎调用pageContext(jsp内置的九大对象之一,封装了其它八大对象).findAttribute()方法,以标识符为关键字从各个域对象(即page-》request-》session-》application从小范围往大范围找)中获取数据对象。如果所有域对象中不存在标识符所对应的数据对象,则返回结果为""(注意,不是null)
EL表达式格式:
用美元符号"$"定界,内容包括在一对花括号"{}"中;注意${}里面不能再嵌套${}即EL表达式不能相互嵌套
即${表达式}
在EL表达式中,取一个对象的属性 点语法(.)和中括号[]语法是通用的
如:${user.sex} ${user["sex"]}
[]还可以用来进行集合元素的定位
如:${booklist[0].price} 即${booklist[0]["price"]}
[]还可以用来动态的取值
如:${user[param]};//param是一个变量
EL表达式自带的11大对象:EL表达式语言中定义了11个隐含对象,使用这些隐含对象可以更方便地获取web开发中的一些常见对象,并读取这些对象的数据。
语法:${隐式对象名称}:获得对象的引用
序号 隐含对象名称 描 述
1 pageContext 即JSP九大内置对象中的pageContext对象(注意:取的是pageContext对象。) 该对象存在的重要意义:分装了JSP九大内置对象中的其它八大对象,即可以通过该对象获取其它8大对象
2 pageScope 代表page域中用于保存属性的Map集合对象
3 requestScope 代表request域中用于保存属性的Map集合对象
4 sessionScope 代表session域中用于保存属性的Map集合对象
5 applicationScope 代表application域中用于保存属性的Map集合对象 Notice这四个只是保存键值对的集合类型的对象
6 param 表示一个保存了所有请求参数的Map集合对象
至少应该包含两个Map对象:URL请求参数Map对象和Request对象设置的属性Map对象
7 paramValues 表示一个保存了所有请求参数的Map集合对象;对于某个请求参数,返回的是一个string[]
8 header 表示一个保存了所有http请求头字段的Map集合对象,注意:如果头里面有“-” ,例Accept-Encoding,则要header[“Accept-Encoding”]
9 headerValues 表示一个保存了所有http请求头字段的Map集合对象,它对于某个请求参数,返回的是一个string[]数组。注意:如果头里面有“-” ,例Accept-Encoding,则要headerValues[“Accept-Encoding”]
10 cookie 表示一个保存了所有cookie的Map集合对象
11 initParam 表示一个保存了所有web应用初始化参数的map集合对象
EL表达式支持大部分Java所提供的算术和逻辑操作符:
操作符 描述
. 访问一个Bean属性或者一个映射条目
[] 访问一个数组或者链表的元素
........
关系运算符:==(或eq)、!=(或ne)、<=(或le)、>=。。。。。。。
验证运算符:empty 不为NULL返回true 为NUll返回false
EL自动类型转换
非EL时我们需要这样写;
String str_count=request.getParameter("count");
int count=Integer.parseInt(str_count);//手动转换类型
count=count+20;
EL会进行自动类型转换
${param.count+20}
在页面中使用JSTL标签的两个步骤:
1、导入jstl.jar和standerd.jar这两个JSTLdejia文件
2、在JSP页面中使用<%@ tablid url="" prifix="" %>导入标签库
EL表达式配合JSTL的使用:
--EL表达式经常与JSTL配合使用,使JSP页面更直观,写法更简单
--普通写法: <%=session.getValue("name")%>
--EL表达式写法: <c:out value="${sessionScope.name}/>"
JSTL核心标签分类:
1.表达式控制标签:out、set、remove、catch、
2.流程控制标签:if、choose、when、otherwise
3.循环标签:forEach、forTokens
4.URL操作标签:import、url、redirect、param
具体:
<c:out/>功能与JSP传统的<%=表达式%>或 <% out.println(“字符串”)%>很类似,用于输出常量值或变量值 变量值用EL表达式获取
<c:set/>功能1:存值到scope(即page、request、session、application)中
<c:set value="today" var="day" scope="session"></c:set>
<c:out value="${day}"></c:out>
或
<c:set var="age" scope="session">eleven</c:set>
<c:out value="${age}"></c:out>
功能2:存值到JavaBean中 如果指定了target属性(指明目标Bean),那么property属性(指明该Bean的属性)也需要被指定。当然这里必须指定洛
<jsp:usebean id="person" scope="session"/>//设置JavaBean
<c:set target="${sessionScope.person}" property="name" value="lihao"></c:set>
<c:out value="${sessionScope.person.name}"></c:out>
<c:remove/>移除指定域的数据对象
<c:catch/>功能与Java程序中的try{}catch{}语句功能很类似
<c:catch var="error">//将错误信息保存到error变量中
<c:set target="aa" property="bb"/>bbbb</c:set>//为一个不存在的JavaBean对象设置属性值
</c:catch>
<c:out value="${error}"/>
<c:if test="" var="" scope=""/>与程序中的if作用相同,用来实现分支条件控制
test属性用来存放判断条件,一般用EL表达式来编写
var指定存放结果true或false的变量名称,结果为true则执行标签体 默认结果为false
scope指定用来指定var的存放范围 默认page
<c:choose>、<c:when>、<c:otherwise>这三个标签一般组合起来使用 相当于switch case default条件分支结构
<c:forEach>:用于对一个集合对象中的元素进行迭代操作
属性名 作用
var 指定将当前迭代到的元素保存到page这个域中的属性名称
varstatus 记住了当前是第几次迭代
items 将要迭代的集合对象
begin
end
step 步长
<c:param>标签可以嵌套在<c:import>、<c:url>、<c:redirect>标签内,为这些标签所使用的URL地址附加参数
<c:param>标签再为一个URL地址附加参数时,将自动对参数值进行URL编码;例如 如果附加的参数值为“中国”,则将其转换为
"%d6%d0%b9%fa"后再附加到URL地址后面,这就是使用<c:param>标签的最大好处
示例:<c:param name="" value=""/>
<c:url>标签用于在JSP页面中构造一个URL地址,其主要目的是为了实现URL重写。所谓的URL重写就是将回话标识符
以参数形式附加到URL地址后面
属性名 是否支持EL 作用
value true
var false
scope false 指定将构造出的URL保存到哪个web作用域
0 0
- jsp与EL表达式
- JSP与EL表达式
- jsp中的JSTL与EL表达式用法
- JSP中EL表达式入门与简介
- jsp中的JSTL与EL表达式用法
- jsp中的JSTL与EL表达式用法
- jsp中的JSTL与EL表达式用法
- jsp中的JSTL与EL表达式用法
- jsp:bean与el表达式笔记
- Web基础之JSP与EL表达式
- JSP学习笔记(三):JSP配置与EL表达式
- JSP表达式语言(EL)
- el jsp表达式
- jsp不支持EL表达式
- el jsp表达式
- jsp中的el表达式
- JSP EL 表达式
- el jsp表达式
- 增、删、改、查
- GitHub上传常见问题
- GitHub上传本地文件(Windows)
- java回忆录—this和super的比较
- 2016/8/4 Day01 - Java语言基础
- JSP与EL表达式
- 51Nod-1413-权势二进制
- android 邮件轰炸机
- 蓝桥杯练习系统OJ题解目录
- LeetCode题解目录
- PAT题解目录
- 打造通用的RecyclerView的Adapter
- java回忆录—代码块
- struts2中iterator,href超链接传递参数