- ${表达式}
3、忽略EL表达式
-
设置JSP中page指令:isElignored=“true” 忽略JSP中所有的 EL 表达式
-
\${表达式}:忽略当前的EL表达式
4、EL 表达式的使用
【1】运算符
-
算数运算符:+ - * /(div) %(mod)
-
比较运算符:> < >= <= == !=
-
逻辑运算符:&&(and) ||(or) !(not)
-
空运算符:empty
-
${empty str}:用于判断字符串,集合数组对象是否为null或者长度是否为 0
-
${not empty str}:表示判断字符串、集合、数组对象是否不为null并且长度大于 0
【2】获取值
-
EL 表达式只能从域对象中获取值
-
格式:${域名称.键名} ==> 从指定的域中获取指定的键值
域 | 对应的域名称 |
pageContext | pageScope |
request | requestScope |
session | sessionScope |
application | applicationScope |
${键名}:表示依次从最小的域中查找是否有该键对应的值
- 获取对象:${域名称.键名.属性名}
本质上是调用Javabean中的getter方法
-
获取 List 集合:${域名称.键名[索引]}
-
获取 Map 集合
-
${域名称.键名.key名称}
-
${域名称.键名[“key名称”]}
【3】隐式对想
EL 表达式中有 11 个隐式对象,这里主要说 pageContext 隐式对象,pageContext 隐式对象主要功能有:
-
获取 JSP 其他八个内置对象
-
动态获取虚拟目录:
<%@ page import=“Test.User” %>
<%@ page import=“java.util.*” %>
<%@ page contentType=“text/html;charset=UTF-8” isELIgnored=“false” language=“java” %>
${3 > 4}
${3 > 4}
算数运算符
${3 + 4}
${3 / 4}
${3 % 4}
比较运算符
${3 == 4}
逻辑运算符
${3 > 4 && 3 < 4}
${3 > 4 and 3 < 4}
在域中获取值
<%
//在request域中存储值
request.setAttribute(“name”,“oneStar”);
//在session域中存储值
session.setAttribute(“age”,“18”);
%>
${requestScope.name}
${sessionScope.age}
${name}
获取对象值
<%
User user = new User();
user.setName(“oneStar”);
user.setAge(18);
user.setBirthday(new Date());
request.setAttribute(“u”,user);
%>
${requestScope.u.name}
${requestScope.u.age}
${requestScope.u.birthday}
获取List集合
<%
List list = new ArrayList();
list.add(“oneStar”);
list.add(“twoStar”);
list.add(“threeStar”);
request.setAttribute(“list”,list);
%>
${requestScope.list}
${requestScope.list[2]}<
获取map集合
<%
Map map = new HashMap<>();
map.put(“name”,“oneStar”);
map.put(“age”,“18”);
request.setAttribute(“map”,map);
%>
${requestScope.map}
${requestScope.map.name}
${requestScope.map[“age”]}
隐式对象
${pageContext.request}
在JSP页面动态获取虚拟目录
${pageContext.request.contextPath}
三、JSTL 标签
=========
JSTL 标签(JavaServer Pages Tag Library),即JSP标准标签库,是由 Apache 组织提供的开源免费的JSP标签,主要是用来简化和替换JSP页面上的Java代码,具体使用步骤如下:
-
导入jstl相关jar包
-
引入标签库:taglib指令引入:<%@ taglib %>
-
使用标签
1、if 标签
-
属性:test 属性,为必须属性,接受 boolean 表达式
-
一般情况下,test属性值会结合 EL 表达式一起使用
-
if 标签没有else情况,如果想要else效果,可以定义多个 if 标签
2、choose 标签
choose 标签就相当于switch 语句,switch 需要配合 case、default 来使用,而choose则需要配合when、otherwise 来使用
-
使用choose标签声明:相当于 switch 声明
-
使用 when 标签做判断:相当于 case
-
使用 otherwise 标签做其他情况的声明:相当于default
3、 foreach 标签
【1】完成重复操作
属性
-
begin:开始值
-
end:结束值
-
var:临时变量
-
step:步长
-
varStatus:循环状态对象
-
index:容器中元素的索引,从 0 开始
-
count:循环次数,从 1 开始
【2】遍历容器
属性
-
items:容器对象
-
var:容器中元素的临时变量
-
varStatus:循环状态对象
-
index:容器中元素的索引,从 0 开始、
-
count:循环次数,从 1 开始
<%@ page import=“java.util.List” %>
<%@ page import=“java.util.ArrayList” %>
<%@ page contentType=“text/html;charset=UTF-8” language=“java” %>
<%@ taglib prefix=“c” uri=“http://java.sun.com/jsp/jstl/core” %>
if标签
<%
List list = new ArrayList();
list.add(“oneStar”);
list.add(“twoStar”);
request.setAttribute(“list”,list);
%>
<c:if test=“${not empty list}”>
集合非空
</c:if>
<c:if test=“${3 % 2 != 0}”>
是奇数
</c:if>
choose标签
<%
request.setAttribute(“number”,“12”);
%>
<c:choose>
<c:when test=“${number == 1}”>星期一</c:when>
<c:when test=“${number == 2}”>星期二</c:when>
<c:when test=“${number == 3}”>星期三</c:when>
<c:when test=“${number == 4}”>星期四</c:when>
<c:when test=“${number == 5}”>星期五</c:when>
<c:when test=“${number == 6}”>星期六</c:when>
最后
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。
因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
学提升又不知道该从何学起的朋友,同时减轻大家的负担。**
[外链图片转存中…(img-yBkHIh0T-1714860569896)]
[外链图片转存中…(img-8SOMAplz-1714860569897)]
[外链图片转存中…(img-kleBDKiA-1714860569897)]
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!