当前位置: 首页 > news >正文

JavaWeb(八)EL表达式,JSTL标签

一、EL表达式

目的就是去掉JSP中的Java代码,都是以标签的形式表示,以标签的形式美工或者前端都可以修改,利于团队的合作。这套标签和Java语言无关。

JSP核心语法:JSP表达式 JSP脚本

JSP开发的原则:尽量在JSP页面少写甚至不写Java代码,Java代码放在Servlet。

使用EL表达式来代替JSP表达式

EL表达式的作用:向浏览器输出域对象(只能输出域对象)的变量或者表达式计算的结果。

语法:${变量或表达式} ${list}

JSP表达式:<%=request.getAttribute(name)%>

EL表达式替代上面的脚本:${requestScope.name}

EL最主要的作用是获得四大域中的数据,格式${EL表达式}

  • EL获得pageContext域中的值:${pageScope.key};   PageContext
  • EL获得request域中的值:${requestScope.key};
  • EL获得session域中的值:${sessionScope.key};
  • EL获得application域中的值:${applicationScope.key};   ServletContext

${key}     ${sessionScope.key}

从四个域对象中取某个值${}

依次从page域 < request域 < session域 < application域获取值,在某个域中找到不再往后找。

就是现在小的域范围找,找不到再去大的范围找.

二、JSTL标签

JSTL(JSP Standard Tag Library),JSP标准标签库,可以嵌入在jsp页面中使用标签的形式完成业务逻辑等功能。jstl出现的目的同EL一样也是要代替JSP页面中的脚本代码。

使用之前需要在文件前面加上 <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>

下面是演示案例

<%@ page import="com.situ.web.pojo.Student" %><%@ page import="java.util.ArrayList" %><%@ page import="java.util.List" %><%--<%@ page contentType="text/html;charset=UTF-8" language="java" %><%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%><html><head><title>Title</title></head><body><%pageContext.setAttribute("age", 23);session.setAttribute("gender", "男");%><c:set var="age" value="24" scope="request"></c:set>&{age}<hr><c:if test="${gender=='男'}">男性</c:if><c:if test="${gender=='女'}">女性</c:if><hr><c:set var="score" value="78"></c:set><c:choose><c:when test="${score>=90&&score<=100}">优秀</c:when><c:when test="${score>=80&&score<=90}">良好</c:when><c:when test="${score>=70&&score<=80}">一般</c:when><c:when test="${score>=60&&score<=70}">及格</c:when><c:otherwise>不及格</c:otherwise></c:choose><hr><c:forEach begin="1" end="10" var="i" step="1">${i}</c:forEach><hr><%List<Student> list = new ArrayList<>();Student student1 = new Student(1, "zhangsan1", 23, "男");Student student2 = new Student(2, "zhangsan2", 23, "男");Student student3 = new Student(3, "zhangsan3", 23, "男");list.add(student1);list.add(student2);list.add(student3);application.setAttribute("list", list);%><c:forEach items="${list}" var="student">${student}</c:forEach></body></html>

http://www.dtcms.com/a/349634.html

相关文章:

  • 阿里云短信验证码服务
  • 奔赴少年CIIU携专辑《我们的出发》正式出道 与J.Y. Park同台首秀备受关注
  • 基于SpringBoot的招聘管理系统【2026最新】
  • 【Linux基础知识系列】第一百一十篇 - 使用Nmap进行网络安全扫描
  • C# NX二次开发:绘图区控件和指定矢量控件详解
  • [MH22D3开发笔记]2. SPI,QSPI速度究竟能跑多快,双屏系统的理想选择
  • 基于WebTransport(底层QUIC)实现视频传输(HTML+JavaScript)
  • C语言基础:(二十五)预处理详解
  • 从0到1:用 Qwen3-Coder 和 高德MCP 助力数字文旅建造——国庆山西游
  • Rust面试题及详细答案120道(58-65)-- 集合类型
  • 解锁处暑健康生活
  • Docker:部署Nginx
  • week4-[一维数组]数码个数
  • Gemini 2.5 Flash-Lite 与 GPT-5-mini:高性能低成本模型,如何选择?
  • 链表OJ习题(1)
  • redis-缓存-持久化
  • 使用 Gemini CLI作为 Claude Code的 subagent
  • OC-MVC模式下的折叠cell
  • 利用 Python 爬虫获取 1688 商品详情 API 返回值说明(代码示例)实战指南
  • 爬虫基础学习-爬取网页项目
  • vue2使用WaveSurfer实现简易的音频播放
  • 波音787项目:AR技术重塑航空制造的数字化转型
  • 用MessageBus优化模块通信:实现订阅/发布模式
  • nmcli命令详解
  • 文吃透朴素贝叶斯:从原理到实战
  • 【python文件处理】使用 open() 函数打开文件、 File 操作文件、使用 OS 对象操作文件目录的知识,使用 open() 函数打开文件
  • DMP-Net:面向脑组织术中成像的深度语义先验压缩光谱重建方法|文献速递-深度学习人工智能医疗图像
  • Android进入Activity时闪黑生命周期销毁并重建
  • 集成电路学习:什么是Caffe深度学习框架
  • 强化学习核心概念与算法详解-马尔可夫决策过程(MDP)+贝尔曼方程(Bellman Equation)