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 代码等,应注意 如 ${ } <%%> 等
随机推荐
- 移动通信网络中的 GTP 协议
目录 文章目录 目录 GTP GTP-C 协议(GTP 控制面) GTP-U 协议(GTP 用户面) GTP' 协议(计费传输) GTPv2 Header GTP GTP(GPRS Tunnellin ...
- 使用systemctl管理服务(nginx)
首先调整好路径信息,修改配置文件vim /usr/lib/systemd/system/nginx.service [Unit]Description=The nginx HTTP and rever ...
- 浏览器打开JupyterLab后所有快捷键与窗口按键均失效怎么办?
本文介绍JupyterLab中菜单栏按钮无法点击.快捷键无法执行问题的解决办法. 近期打开JupyterLab后,发现其中菜单栏按钮无法点击,快捷键也均无法执行.如图,红框内的按钮点击均无任何 ...
- VisioForge.DotNet.Core.UI.WPF WPF摄像头 UVC 显示 支持 .net core
Sample applications available at https://github.com/visioforge/.Net-SDK-s-samples . Please add Visio ...
- .NET周刊【6月第1期 2024-06-02】
国内文章 一文带你了解.NET能做什么? https://www.cnblogs.com/Can-daydayup/p/18214473 .NET是一个免费.开源.跨平台的开发平台框架,广泛应用于桌面 ...
- LeetCode 715. Range Module Range 模块 (Java)
题目: A Range Module is a module that tracks ranges of numbers. Your task is to design and implement t ...
- Kubernetes监控手册06-监控APIServer
写在前面 如果是用的公有云托管的 Kubernetes 集群,控制面的组件都交由云厂商托管的,那作为客户的我们就省事了,基本不用操心 APIServer 的运维.个人也推荐使用云厂商这个服务,毕竟 K ...
- C#中路径说明
路径中一个点和两个点的区别 ./ 表示当前目录,如"./jquery-1.3.2.min.js",也可以去掉"./",如"jquery-1.3. ...
- 聊聊GLM-4-9B开源模型的微调loss计算
概述 Github官方地址:GLM-4 网上已经有很多关于微调的文章,介绍各种方式下的使用,这里不会赘述.我个人比较关心的是微调时的loss计算逻辑,这点在很多的文章都不会有相关的描述,因为大多数人都 ...
- Caffe样例中mnist的文件之间逻辑分析
约定一下,Caffe运行样例时在终端中使用的所有命令,同时终端中的目录已经cd到Caffe之中(别告诉我一个Github项目你还没有make all就直接拿过来用了) sudo sh data/mni ...