JSP、EL表达式、JSTL标签


  • ${表达式}

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 表达式只能从域对象中获取值

  • 格式:${域名称.键名}  ==>  从指定的域中获取指定的键值

对应的域名称
pageContextpageScope
requestrequestScope
sessionsessionScope
applicationapplicationScope

${键名}:表示依次从最小的域中查找是否有该键对应的值

  • 获取对象:${域名称.键名.属性名}

本质上是调用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” %>

$Title$

${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代码,具体使用步骤如下:

  1. 导入jstl相关jar包

  2. 引入标签库:taglib指令引入:<%@ taglib %>

  3. 使用标签

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” %>

OneStar

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开发知识点,不论你是刚入门Java开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。**

[外链图片转存中…(img-FTkz84Wk-1715823190095)]

[外链图片转存中…(img-jjyrjIDI-1715823190095)]

[外链图片转存中…(img-MUNQStB0-1715823190096)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,不论你是刚入门Java开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值