JSP第四篇【EL表达式介绍、获取各类数据、11个内置对象、执行运算、回显数据、自定义函数、fn方法库】(三)

简介: 表达式语言(Expression Language,EL),EL表达式是用"${}"括起来的脚本,用来更方便的读取对象!

看起来好像取出数据的时候是会有点复杂,但是有了EL表达式也是非常轻松的

${map.aa.username}
<br>
${map.bb.username}

效果:64.jpg

如果Map集合存储的关键字是一个数字,就不能使用"."号运算符了,如下所示65.jpg

对于这种情况,我们可以使用"[]"的形式读取Map集合的数据

${map["1"].username}
<br>
${map["2"].username}
  • EL表达式配合JSTL标签可以很方便的迭代集合,后面讲到JSTL标签的时候会用到!这里就不详细说明了。

EL运算符

  • EL表达式支持简单的运算符:加减乘除取摸,逻辑运算符empty运算符(判断是否为null),三目运算符
    66.jpg

67.jpg

  • empty运算符可以判断对象是否为null,用作于流程控制!
  • 三目运算符简化了if和else语句,简化代码书写
<%
    List<Person> list = null;
%>
${list==null?"list集合为空":"list集合不为空"}

效果:68.jpg

EL表达式11个内置对象

EL表达式主要是来对内容的显示,为了显示的方便,EL表达式提供了11个内置对象

  1. pageContext 对应于JSP页面中的pageContext对象(注意:取的是pageContext对象)
  2. pageScope 代表page域中用于保存属性的Map对象
  3. requestScope 代表request域中用于保存属性的Map对象
  4. sessionScope 代表session域中用于保存属性的Map对象
  5. applicationScope 代表application域中用于保存属性的Map对象
  6. param 表示一个保存了所有请求参数的Map对象
  7. paramValues表示一个保存了所有请求参数的Map对象,它对于某个请求参数,返回的是一个string[]
  8. header 表示一个保存了所有http请求头字段的Map对象
  9. headerValues同上,返回string[]数组。
  10. cookie 表示一个保存了所有cookie的Map对象
  11. initParam 表示一个保存了所有web应用初始化参数的map对象
  • 下面测试各个内置对象
<%--pageContext内置对象--%>
<%
    pageContext.setAttribute("pageContext1", "pageContext");
%>
pageContext内置对象:${pageContext.getAttribute("pageContext1")}
<br>
<%--pageScope内置对象--%>
<%
    pageContext.setAttribute("pageScope1","pageScope");
%>
pageScope内置对象:${pageScope.pageScope1}
<br>
<%--requestScope内置对象--%>
<%
    request.setAttribute("request1","reqeust");
%>
requestScope内置对象:${requestScope.request1}
<br>
<%--sessionScope内置对象--%>
<%
    session.setAttribute("session1", "session");
%>
sessionScope内置对象:${sessionScope.session1}
<br>
<%--applicationScope内置对象--%>
<%
    application.setAttribute("application1","application");
%>
applicationScopt内置对象:${applicationScope.application1}
<br>
<%--header内置对象--%>
header内置对象:${header.Host}
<br>
<%--headerValues内置对象,取出第一个Cookie--%>
headerValues内置对象:${headerValues.Cookie[0]}
<br>
<%--Cookie内置对象--%>
<%
    Cookie cookie = new Cookie("Cookie1", "cookie");
%>
Cookie内置对象:${cookie.JSESSIONID.value}
<br>
<%--initParam内置对象,需要为该Context配置参数才能看出效果【jsp配置的无效!亲测】--%>
initParam内置对象:${initParam.name}
<br>

效果图:69.jpg

注意事项:

  • 测试headerValues时,如果头里面有“-” ,例Accept-Encoding,则要headerValues[“Accept-Encoding”]
  • 测试cookie时,例${cookie.key}取的是cookie对象,如访问cookie的名称和值,须${cookie.key.name}${cookie.key.value}
  • 测试initParam时,初始化参数要的web.xml中的配置Context的,仅仅是jsp的参数是获取不到的
  • 上面已经测过了9个内置对象了,至于param和parmaValues内置对象一般都是别的页面带数据过来的(表单、地址栏)
  • 表单页面
<form action="/zhongfucheng/1.jsp" method="post">
用户名:<input type="text" name="username"><br>
年龄:<input type="text " name="age"><br>
爱好:
<input type="checkbox" name="hobbies" value="football">足球
<input type="checkbox" name="hobbies" value="basketball">篮球
<input type="checkbox" name="hobbies" value="table tennis">兵乓球<br>
<input type="submit" value="提交"><br>
</form>

处理表单页面:

${param.username}
<br>
${param.age}
<br>
//没有学习jstl之前就一个一个写吧。
${paramValues.hobbies[0]}
<br>
${paramValues.hobbies[1]}
<br>
${paramValues.hobbies[2]}
<br>

效果:70.jpg

当然了,使用地址栏方式提交数据给处理页面也是用param内置对象去获取数据的71.png

EL表达式回显数据

EL表达式最大的特点就是:如果获取到的数据为null,输出空白字符串""!这个特点可以让我们数据回显

  • 在1.jsp中模拟场景
<%--模拟数据回显场景--%>
<%
    User user = new User();
    user.setGender("male");
    //数据回显
    request.setAttribute("user",user);
%>
<input type="radio" name="gender" value="male" ${user.gender=='male'?'checked':'' }>男
<input type="radio" name="gender" value="female" ${user.gender=='female'?'checked':'' }>女

效果:

72.jpg

目录
相关文章
|
6月前
|
Java 应用服务中间件
jsp数据交互(一)
jsp数据交互(一)
|
6月前
|
存储 缓存 Java
JSP九大内置对象及基本使用
JSP九大内置对象及基本使用
140 0
|
2月前
|
Java 关系型数据库 MySQL
毕设项目&课程设计&毕设项目:springboot+jsp实现的房屋租租赁系统(含教程&源码&数据库数据)
本文介绍了一款基于Spring Boot和JSP技术的房屋租赁系统,旨在通过自动化和信息化手段提升房屋管理效率,优化租户体验。系统采用JDK 1.8、Maven 3.6、MySQL 8.0、JSP、Layui和Spring Boot 2.0等技术栈,实现了高效的房源管理和便捷的租户服务。通过该系统,房东可以轻松管理房源,租户可以快速找到合适的住所,双方都能享受数字化带来的便利。未来,系统将持续优化升级,提供更多完善的服务。
毕设项目&课程设计&毕设项目:springboot+jsp实现的房屋租租赁系统(含教程&源码&数据库数据)
|
3月前
|
安全 Java 关系型数据库
毕设项目&课程设计&毕设项目:基于springboot+jsp实现的健身房管理系统(含教程&源码&数据库数据)
本文介绍了一款基于Spring Boot和JSP技术实现的健身房管理系统。随着健康生活观念的普及,健身房成为日常锻炼的重要场所,高效管理会员信息、课程安排等变得尤为重要。该系统旨在通过简洁的操作界面帮助管理者轻松处理日常运营挑战。技术栈包括:JDK 1.8、Maven 3.6、MySQL 8.0、JSP、Shiro、Spring Boot 2.0等。系统功能覆盖登录、会员管理(如会员列表、充值管理)、教练管理、课程管理、器材管理、物品遗失管理、商品管理及信息统计等多方面。
|
3月前
|
XML JSON Java
使用IDEA+Maven搭建整合一个Struts2+Spring4+Hibernate4项目,混合使用传统Xml与@注解,返回JSP视图或JSON数据,快来给你的SSH老项目翻新一下吧
本文介绍了如何使用IntelliJ IDEA和Maven搭建一个整合了Struts2、Spring4、Hibernate4的J2EE项目,并配置了项目目录结构、web.xml、welcome.jsp以及多个JSP页面,用于刷新和学习传统的SSH框架。
83 0
使用IDEA+Maven搭建整合一个Struts2+Spring4+Hibernate4项目,混合使用传统Xml与@注解,返回JSP视图或JSON数据,快来给你的SSH老项目翻新一下吧
|
3月前
|
缓存 Java 应用服务中间件
JSP的内置对象 request和response
这篇文章详细介绍了JSP的内置对象,包括request、response、out、session和application对象的使用方法和特性,以及如何通过这些对象处理HTTP请求和响应、管理会话和输出数据。
|
5月前
|
XML SQL Java
JSP 教程 之 JSP 标准标签库(JSTL) 6
**JSP JSTL 摘要:** JSTL是JSP的标签库,包含核心、格式化、SQL、XML和函数5类标签。它用于执行常见任务,如迭代、条件判断和XML操作。JSTL函数库提供字符串处理函数,如`contains()`, `endsWith()`, `escapeXml()`等,方便XML和HTML处理。通过`&lt;%@ taglib %&gt;`导入,如`fn:trim()`用于去除字符串两端空白。
37 5
|
5月前
|
存储 Java
JSP 教程 之 JSP 表达式语言 8
**JSP EL简化了JavaBean数据访问,支持算术和逻辑表达式,允许使用数字、字符串及布尔值。示例展示如何获取HTTP头信息:`${header[&quot;user-agent&quot;]}`显示&quot;user-agent&quot;头信息。`header`单值,`headerValues`为数组。**
29 0
|
5月前
|
存储 Java
JSP 教程 之 JSP 表达式语言 7
**JSP EL简化了JavaBean数据访问,支持算术和逻辑表达式,允许使用数字、字符串及布尔值。示例展示如何获取请求参数:`${param.order}`或`${param[&quot;order&quot;]}`代表`order`参数,`${param[&quot;username&quot;]}`用于获取`username`。`param`对象返回单个字符串,`paramValues`返回字符串数组。**
32 0
|
5月前
|
存储 Java
JSP 教程 之 JSP 表达式语言 6
**JSP EL简化了JavaBean数据访问,支持算术和逻辑表达式,以及整数、浮点数等类型。隐含对象如pageScope、requestScope等代表不同作用域,便于访问请求参数、HTTP头信息和Cookie等。通过scope对象,如applicationScope,可直接在表达式中访问不同层次的变量,如`applicationScope.box`。**
30 0

相关课程

更多
下一篇
无影云桌面