菜鸟教程  传送门

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

  EL表达式获得当前项目路径可以通过Page作用域去获取

${pageContext.request.contextPath} 

操作简单数据

<%@ page language="java" contentType="text/html; charset=utf-8"pageEncoding="utf-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Insert title here</title>
</head>
<body>
作用域:page request session application
<hr>
<%
request.setAttribute("number",2000);
session.setAttribute("use","Hello Gary!!!");
application.setAttribute("string","nihao");//同名情况    直接使用${wa}只会从request->session->application
request.setAttribute("wa",1);
session.setAttribute("wa",2);
application.setAttribute("wa",3);
%>request    :${requestScope.number}<br>
session :${sessionScope.use}<br>
application :${applicationScope.string}<br><br>${wa}<br><%
request.removeAttribute("wa");    //将request域中"wa"给删除
%>${wa}<br>
</body>
</html>

el.jsp

输出:

作用域:page request session application
request :2000
session :Hello Gary!!!
application :nihao12

el表达式从map集合和对象里面取得数据

package com.Gary.model;public class User {private String username;private String password;private int age;private String sex;private boolean isAdmin=false;    //判断是否是管理员账号public User(String username, String password, int age, String sex, boolean isAdmin) {super();this.username = username;this.password = password;this.age = age;this.sex = sex;this.isAdmin = isAdmin;}public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public String getSex() {return sex;}public void setSex(String sex) {this.sex = sex;}public boolean isAdmin() {return isAdmin;}public void setAdmin(boolean isAdmin) {this.isAdmin = isAdmin;}}

User.java

<%@page import="java.util.HashMap"%>
<%@page import="java.util.Map"%>
<%@page import="com.Gary.model.User"%>
<%@ page language="java" contentType="text/html; charset=utf-8"pageEncoding="utf-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Insert title here</title>
</head>
<body>
作用域:page request session application
<hr><%
User u = new User("Gary","123",20,"男",false);
request.setAttribute("user",u);
%>${user.getUsername()}    <br>
${user.username}    <br><hr>
<!-- 从Map中存储数据 -->
<%
Map<String,String>map = new HashMap<String,String>();
map.put("name","Gary2");
map.put("age","12");
request.setAttribute("user2",map);
%>${user2.name}<br>
${user2.age}<br></body>
</html>

el.jsp

输出:

作用域:page request session application
Gary
Gary Gary212

  如果要使用 ${user.username} 去替代 ${user.getUsername()} 那么User.java中必须要存在 getUsername() 方法

el表达式从list集合和对象里面取得数据

package com.Gary.model;public class User {private String username;private String password;private int age;private String sex;private boolean isAdmin=false;    //判断是否是管理员账号public User(String username, String password, int age, String sex, boolean isAdmin) {super();this.username = username;this.password = password;this.age = age;this.sex = sex;this.isAdmin = isAdmin;}public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public String getSex() {return sex;}public void setSex(String sex) {this.sex = sex;}public boolean isAdmin() {return isAdmin;}public void setAdmin(boolean isAdmin) {this.isAdmin = isAdmin;}}

User.java

<%@page import="java.util.ArrayList"%>
<%@page import="java.util.List"%>
<%@page import="java.util.HashMap"%>
<%@page import="java.util.Map"%>
<%@page import="com.Gary.model.User"%>
<%@ page language="java" contentType="text/html; charset=utf-8"pageEncoding="utf-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Insert title here</title>
</head>
<body>
作用域:page request session application
<hr><%
List<User> list = new ArrayList<User>();
list.add(new User("Gary0","0",10,"男",false));
list.add(new User("Gary1","1",20,"男",false));
list.add(new User("Gary2","2",30,"男",false));
list.add(new User("Gary3","3",40,"男",false));
list.add(new User("Gary4","4",50,"男",false));
request.setAttribute("list", list);
%>${list[2].username}    <br>
${list[4].username}    <br>加减运算    ${list[2].age+list[4].age}    <br>判空list ${empty list}    <br>
判空list2 ${empty list2}    <br>${pageContext.request.contextPath} <br>
</body>
</html>

el.jsp

输出

作用域:page request session application
Gary2 Gary4
加减运算 80
判空list false
判空list true /Gary04 

  获得当前项目路径可以通过EL表达式Page作用域去获取

${pageContext.request.contextPath}

转载于:https://www.cnblogs.com/1138720556Gary/p/10308641.html

JavaWeb_EL表达式存储数据及获得项目路径相关推荐

  1. Android数据存储之文件存储(瞬时数据的存储与读取)项目已上传GitHub

    GitHub地址: https://github.com/Skymqq/FileSave.git 数据持久化就是指将那些内存中的瞬时数据保存到存储设备中,保证即使在手机或电脑关机的情况下,这些数据仍然 ...

  2. GitLab默认仓库存储目录更换及项目迁移 GitLab跨服务器数据迁移

    一.GitLab的数据从旧服务器迁移到新服务器 注释:旧服务器.新服务器GitLab版本保持一致,如果不一致得需要升级 1旧服务器上的安装版本 [root@iZbp1ac9uozodszcdkd98n ...

  3. android平台上持久化存储3种手段_Android 数据持久化==存储数据的五种方法

    1.使用SharedPreferences存储数据 2.文件存储数据 3.SQLite数据库存储数据 4.使用ContentProvider存储数据 5.网络存储数据 第一种: 使用SharedPre ...

  4. SpringBoot中使用Thymeleaf常用功能(一):表达式访问数据

    环境搭建: 创建一个Maven项目,按照Maven项目的规范,在src/main/下新建一个名为resources的文件夹,并在下面新建static和templates文件夹. ①  修改pom.xm ...

  5. WIN10下怎么找到MYSQL5.7数据库中存储数据的位置以及重装mysql数据复盘

    由于我换了个m.2的固态硬盘 我重装系统,但是重装系统之后,我mysql之前的版本是5.5的,然后不能启动,我想这重装吧,我想在重装肯定装5.7的了,我就从官网下载了5.7版本,安装完毕,但是我想把我 ...

  6. Python操作HDF5存储数据方法总结

    写在前面 HDF是什么 可视化工具 Pandas内置HDF文件操作 踩坑记录 参考文献 后记 写在前面   最近在做股价预测有关项目,需要大量股票数据,然而手头的CSV格式的数据对硬盘的占用越来越大, ...

  7. 浏览器对象存储数据详解

    浏览器对象存储数据详解 前言 随着需求的发展,浏览器的功能正变的越来越强大,在本地存储数据可以极大的方便人们进行各种操作,如localStroage/sessionStroage等,下面我就记录在项目 ...

  8. 第五章 存储数据 web scraping with python

    第五章.存储数据 尽管在终端打印是有很多乐趣的,但是当谈到数据汇总和分析时候这不是非常有用的.为了使大部分的爬虫有用,你需要能够保存它们抓取的信息. 在本章中,我们将着眼于的三个数据管理的方法满足任何 ...

  9. Unity实现大转盘抽奖效果(可存储数据)

    一.演示效果 二.使用工具 Unity:2019.4.36 VS:2019 三.场景搭建 1.总体预览 2.Scroll View设置 3.创建一个名叫StreamingAssets文件夹,在里面创建 ...

最新文章

  1. 计算机网络测试两个主机连通性,计算机网络试卷A
  2. 有了我的第一个留言,高兴
  3. [公告]博客园新服务器照片
  4. php把excel转化为csv,php xls如何转csv
  5. Disturbed People(思维)
  6. 自动感光调节LED灯亮度C语言程序,单片机PWM调节LED灯亮度
  7. ux设计师薪水_公司与 设计机构:UX设计师的津贴和陷阱
  8. icmp协议介绍,type code 对应表
  9. (27)System Verilog设计UART接收
  10. 二叉链表和职工管理系统结合_职工信息管理系统单链表实现C语言源程序
  11. 「洛谷P3469」[POI2008]BLO-Blockade 解题报告
  12. GridView(网格视图)+MotionEvent(触控事件)实现可以拖动排序的网格图
  13. Python截屏工具,识别屏幕中的二维码
  14. Java对比两个json 的数据结构和内容是否一样
  15. Linux命令之du命令
  16. android 加速度传感器测步数,基于加速度传感器的运动步数检测算法研究
  17. Hyper-V安装Ubuntu 18使用笔记
  18. Spring Security Oauth2 JWT----单点登录、注销、续签的问题
  19. 看图写英语作文关于计算机,看图写话英语作文模板
  20. Android入门篇(四):自动拨打电话、手动拨打电话

热门文章

  1. 算数运算符与关系运算符_JavaScript关系运算符
  2. matlab netcdf,Matlab读取Netcdf文件
  3. iphone分辨率_QHD 分辨率有必要吗?三个理由告诉你:手机屏幕 FHD 就很好
  4. Mysql合并两个sql结果
  5. 线程池拒绝策略-RejectedExecutionHandler
  6. SpringBoot异步任务, 以及带返回值的异步任务(@Async 不起作用的原因)
  7. python 模块,模块名和包 最最简单的使用 入门级 不够详细 不建议参考- - 扫一眼就好
  8. 分布式大数据多维数据分析(olap)引擎kylin[转]
  9. illegal utf8 encoding at (190)
  10. 多领域合作 浪潮与美亚柏科赋能信息安全