Java-EL表达式替换和简化jsp页面中java代码的编写
- 概念:Expression Language 表达式语言
- 作用:替换和简化jsp页面中java代码的编写
- 语法:$
- 注意:
- jsp默认支持el表达式,如果要忽略el表达式
- 设置jsp中page指令中:isELIgnored="true" 忽略当前jsp页面中所有的el表达式
- ${表达式}:忽略当前这个el表达式
- 使用:
- 运算
* 运算符- 算数运算符:+ - * /(div) %(mod)
- 比较运算符:> < >= <= == !=
- 逻辑运算符:&&(and)||(or) !(not)
- 空运算符:empty
- 功能:用于判断字符串,集合,数组对象是否为null或者长度是否为0
- ${empty list}:判断字符串,集合,数组对象是否为null或者长度是否为0
- ${not empty list}:表示判断字符串,集合,数组对象是否不为null并且长度>0
- 获取值
1. el表达式只能从域对象中获取值
2. 语法- ${域名称. 键名}:从指定的域中获取指定键的值
- 域名称:
- pageScope -->pageContext
- requestScope -->request
- sessionScope -->session
- applicationScope-->application(ServletContext)
- 举例:
- 在request域中存储了name=张三
- 获取:$
- ${键名}:表示一次从最小的域中查找是否有该键对应的值,直到找到为止 $
- 获取对象,List集合,Map集合
- 对象:${域名称.键名.属性名}
* 本质上会去调用对象的getter方法 - List集合:$
- Map集合:\({域名称.键名.key名称}或者\)
- 隐式对象:
* el表达式中有11个隐式对象
* pageContext:- 获取其他8个内置对象
在jsp页面动态获取虚拟目录:$
- 获取其他8个内置对象
运算符
<%@ page import="java.util.List" %>
<%@ page import="java.util.ArrayList" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
${3>4}
\${3>4}
<hr>
<h3>算数运算符</h3>
${3+4}<br>
${3-4}<br>
${3 % 4}<br>
${3 mod 4}<br>
${3 div 4}<br>
${3 / 4}<br>
<h3>比较运算符</h3>
${3==4}<br>
<h3>逻辑运算符</h3>
${3>4 && 3<4}<br>
${3>4 and 3<4}<br>
<h3>empty运算符</h3>
<%
String str="abc";
request.setAttribute("str",str);
List list=new ArrayList();
request.setAttribute("list",list);
%>
${empty str}<br>
${not empty str}<br>
${not empty list}<br>
</body>
</html>
域中存取数据
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>el获取域中的数据</title>
</head>
<body>
<%
session.setAttribute("name","李四");
//在域中存储数据
request.setAttribute("name","张三");
session.setAttribute("msg","23");
%>
<h3>el获取值</h3>
${requestScope.name};
${sessionScope.msg};
${name};
${sessionScope.name};
</body>
</html>
存取对象与集合数据
<%@ page import="cn.itcast.domain.User" %>
<%@ page import="java.awt.*" %>
<%@ page import="java.util.*" %>
<%@ page import="java.util.List" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>el获取对象数据</title>
</head>
<body>
<%
User user=new User();
user.setAge(23);
user.setName("张三");
user.setBirthday(new Date());
request.setAttribute("u",user);
List list = new ArrayList();
list.add("aaa");
list.add("bbb");
list.add(user);
request.setAttribute("list",list);
Map map=new HashMap();
map.put("sname","李四");
map.put("gender","男");
map.put("user",user);
request.setAttribute("map",map);
%>
<h3>el获取对象中的值</h3>
${requestScope.u};
<%--
* 通过对象的属性来获取
* setter和getter方法,去掉set和get,再将剩余部分,首字母变小写
* setName -->Name -->name
--%>
<br>
${requestScope.u.name}
<br>
${requestScope.u.age}
<br>
${requestScope.u.birthday}
<br>
${u.birthday.year}
<br>
${u.birthday.month}
<br>
<h3>el获取List中的值</h3>
<br>
${list}<br>
${list[0]}<br>
${list[1]}<br>
${list[10]}<br>
${list[2].name}<br>
<h3>el获取Map中的值</h3>
<br>
${map.gender}<br>
${map["gender"]}<br>
${map.user.name}<br>
</html>
动态获取虚拟目录
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>el的隐式对象</title>
</head>
<body>
${pageContext.request}<br>
<h3>在jsp页面动态获取虚拟目录</h3>
${pageContext.request.contextPath}<br>
</body>
</html>
Java-EL表达式替换和简化jsp页面中java代码的编写的更多相关文章
- jsp页面中的代码执行加载顺序介绍
1. java是在服务器端运行的代码,jsp在服务器的servlet里运行,而javascript和html都是在浏览器端运行的代码.所以加载执行顺序是是java>jsp>js. 2. j ...
- Jsp页面中动态的引入另一个jsp,jsp:include路径是变量的实现
1 问题描述 在页面搭建时,会有这样的需求,希望局部页面动态的引用另一个jsp.这里的"动态"的意思引用的jsp的路径是个变量.举个例子,我们希望局部页面可能是page1.jsp或 ...
- jsp页面中的EL表达式不被解析的问题
原因:问题在web.xml配置文件上,web.xml声明部分一般分为如下版本的xsd, web-app_2_2.xsd web-app_2_3.xsd web-app_2_4.xsd web-app_ ...
- Java jsp页面中jstl标签详解
JSLT标签库,是日常开发经常使用的,也是众多标签中性能最好的.把常用的内容,放在这里备份一份,随用随查.尽量做到不用查,就可以随手就可以写出来.这算是Java程序员的基本功吧,一定要扎实. JSTL ...
- JSTL标签急速秒杀jsp页面中的java代码(一)---Core标签库
JSTL标签简介 ===================================================================== JSTL的全称是JavaServer Pa ...
- jsp页面中的java代码
jsp页面中的java代码 1.jsp表达式 <%= ....%> 只能放置一个变量常量 2. jsp小脚本 <% .... %> java语句,可以插入一些语句 3. ...
- 多个jsp页面共享Java bean
通过jsp的内置对象—request对象获取参数: 通过超链接传参: 例:把a.jsp中i的值传到b.jsp中: 在a.jsp页面中的核心代码为: <a href="b.jsp?i=1 ...
- struts框架中OGNL表达式的使用之jsp页面获取action中的属性值
在jsp页面中获取action中的值: 1.写一个action类OgnlAction类: 需要注意的地方: 如果在aciton中直接使用ognl表达式,将值存储的值栈中,是不能通过跳转将值传到jsp页 ...
- 在Struts2框架中使用OGNL表达式(在jsp页面中使用OGNL表达式)
1. Struts2引入了OGNL表达式,主要是在JSP页面中获取值栈中的值 2. 具体在Struts2中怎么使用呢?如下步骤 * 需要先引入Struts2的标签库(在JSP页面的最上面位置) > ...
- js 和 css 中 不能使用 jsp 页面中一些 标签 和 java 代码等,应注意
js 和 css 中 不能使用 jsp 页面中一些 标签 和 java 代码等,应注意 如 ${ } <%%> 等
随机推荐
- Spring6 的JdbcTemplate的JDBC模板类的详细使用说明
1. Spring6 的JdbcTemplate的JDBC模板类的详细使用说明 @ 目录 1. Spring6 的JdbcTemplate的JDBC模板类的详细使用说明 每博一文案 2. 环境准备 3 ...
- 【问题解决】java.lang.NoSuchMethodError错误
问题现象 近期本人负责的一个SpringBoot模块出现了java.lang.NoSuchMethodError报错,问题情况如下: A类提供了setJumpType(String type),B类调 ...
- warning: ignoring return value of ‘scanf’, declared with attribute warn_unused_result [-Wunused-result] scanf("%d",&f);
这个是C语言当中常见的错误,意思是 对于输入的scanf参数的内容,没有进行类型判断,所以才会产生这个问题. 解决方法: 1.添加if判断方式 1 if(scanf("%d",&a ...
- JDBC连接MySQL 8时报错:MySQLNonTransientConnectionException: Public Key Retrieval is not allowed
需要设置属性 IDEA DBerver
- openstack以后需要研究一下的知识
1. openvt是一个用于在虚拟终端上启动程序的命令行工具.它允许用户在一个新的虚拟终端(VT)上启动一个程序,并将标准输入.输出和错误输出定向到该终端. openvt的用法如下: 打开一个虚拟终端 ...
- 当面试官问出“Unsafe”类时,我就知道这场面试废了,祖坟都能给你问出来!
一.写在开头 依稀记得多年以前的一场面试中,面试官从Java并发编程问到了锁,从锁问到了原子性,从原子性问到了Atomic类库(对着JUC包进行了刨根问底),从Atomic问到了CAS算法,紧接着又有 ...
- CentOS搭建Jellyfin影音服务器
一. 安装Jellyfin 之前介绍过Docker安装jellyfin,但Docker安装方式存在一些限制,于是一起学习一下用RPM包在CentOS 7下安装方法. 先安装需要的依赖: yum ins ...
- WPF加载GIF的五种方式(Storyboard / WpfAnimatedGif / ImageAnimator / PictureBox / MediaElement)
部分内容参考博文WPF 如何显示gif 一.使用Storyboard 效果: (1)页面xaml: <Window x:Class="PlayGifDemo.StoryboardWin ...
- 通过计算巢轻松部署 Walrus
概述 Walrus 是一个用于管理和部署应用程序的平台,它提供了一个集中化的管理界面,使用户能够轻松地管理应用的生命周期,包括创建.配置.部署.监控和维护应用.Walrus 还提供了一些高级功能,如应 ...
- LLM 大模型学习必知必会系列(八):10分钟微调专属于自己的大模型
LLM 大模型学习必知必会系列(八):10分钟微调专属于自己的大模型 1.环境安装 # 设置pip全局镜像 (加速下载) pip config set global.index-url https:/ ...