jsp简单入门之el表达式学习二

本文详细介绍了JSP中的EL(Expression Language)表达式的使用方法,包括基本语法、运算符、变量存取方式及如何在JSP页面中获取不同范围内的数据。此外,还介绍了如何利用EL表达式进行算术运算、逻辑运算以及访问HTTP请求中的各种对象。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

EL(Expression Language) 是为了使JSP写起来更加简单。表达式语言的灵感来自于 ECMAScript 和 XPath 表达式语言,它提供了在 JSP 中简化表达式的方法,让Jsp的代码更加简化。

1、语法结构
${expression}
2、[ ]与.运算符
EL 提供“.“和“[ ]“两种运算符来存取数据。
当要存取的属性名称中包含一些特殊字符,如 . 或 - 等并非字母或数字的符号,就一定要使用“[ ]“。例如:
${ user. My-Name}应当改为${user["My-Name"]}
如果要动态取值时,就可以用“[ ]“来做,而“.“无法做到动态取值。例如:
${sessionScope.user[data]}中data 是一个变量
3、变量
EL存取变量数据的方法很简单,例如:${username}。它的意思是取出某一范围中名称为username的变量。
因为我们并没有指定哪一个范围的username,所以它会依序从Page、Request、Session、Application范围查找。
假如途中找到username,就直接回传,不再继续找下去,但是假如全部的范围都没有找到时,就回传""。
Name}应当改为${user["My-Name"]}
如果要动态取值时,就可以用“[ ]“来做,而“.“无法做到动态取值。例如:
${sessionScope.user[data]}中data 是一个变量
属性范围在EL中的名称
PagePageScope
RequestRequestScope
SessionSessionScope
ApplicationApplicationScope

EL表达式

* 语法:${ }
* 获取(域对象中的)数据
<h4>获取域对象中的值</h4>
<%
pageContext.setAttribute("name", "张三");
request.setAttribute("name", "李四");
%>

${ pageScope.name }
${ requestScope.name }


<h4>域中数组的值</h4>
<%
String [] arrs = {"美美","波波","东东","名名"};
request.setAttribute("arrs", arrs);
%>
${ arrs[2] } 获取的结果是东东,这个是根据数组的下标来获取的,下标是从0开始的


<h4>域中集合的值</h4>
<%
List<String> list = new ArrayList<String>();
list.add("美美");
list.add("小凤");
list.add("芙蓉");
request.setAttribute("list", list);
%>
${ list[1] } 获取的结果是小凤,这个是根据数组的下标来获取的,下标是从0开始的


<h4>域中Map集合的值</h4>
<%
Map<String,String> map = new HashMap<String,String>();
map.put("aa", "美美");
map.put("bb", "小凤");
request.setAttribute("map", map);
%>
${ map.bb } 获取的结果是小凤,map是根据key value取值的 




<h4>域中集合中有对象的值</h4>
<%
List<User2> uList = new ArrayList<User2>();
uList.add(new User2("banzhang","123"));
uList.add(new User2("美美","abc"));
request.setAttribute("uList", uList);
%>
${ uList[1].username }


* 执行运算
<h4>加法运算</h4>
${ n1 + n2 }


<h3>关系运算</h3>
<h4>大于</h4>
${ n1 > n2 } ${ n1 gt n2 }


<h4>小于</h4>
${ n1 < n2 } ${ n1 lt n2 }


<h4>等于</h4>
${ n1 == n2 } ${ n1 eq n2 }


<h4>不等于</h4>
${ n1 != n2 } ${ n1 ne n2 }


<h4>大于等于</h4>
${ n1 >= n2 } ${ n1 ge n2 }


<h4>小于等于</h4>
${ n1 <= n2 } ${ n1 le n2 }


<h3>逻辑运算</h3>
<h4>与</h4>
${ n1 > n2 && n3 > n4 } ${ n1 > n2 and n3 > n4 }


<h4>或</h4>
${ n1 > n2 || n3 > n4 } ${ n1 > n2 or n3 > n4 }


<h4>非</h4>
${ !(n1 > n2) } ${ not (n1 > n2) }


* 获取WEB开发中的对象
pageScope
requestScope
sessionScope
applicationScope

param 获取请求的参数 getParameter()
paramValues 获取请求的参数 getParameterValues()

header 获取请求头的信息
headerValues 获取请求头的信息

initParam 获取全局的初始化参数
cookie 获取cookie


pageContext

<h4>EL的WEB对象</h4>
${ param.username }


<h4>获取请求头</h4>
${ header.referer }

<h4>获取全局初始化参数</h4>
${ initParam.username }

<h4>pageContext对象</h4>  这个是获取动态路径的,即在action后面的请求路径
${ pageContext.request.contextPath }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值