EL表达式与JSTL标签库

本文详细介绍了JSP中的EL表达式的使用方法及其在不同作用域中的取值规则,并探讨了如何通过JSTL标签库增强JSP的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

html:
:显示注释
java:
// :单行注释
/* */:多行注释
jsp:
<%– jsp注释 –%>:隐式注释

EL表达式:JSP 2.0 将EL 表达式添加为一种脚本编制元素。
E L(Expression Language) 目的:为了使JSP写起来更加简单

1、语法结构
    ${expression} 语法:${表达式或变量}

    el表达式中出现的变量必须是 作用域(pageContext,request,session,application)中的属性
    如果他们四个的属性都一样那么取作用域最小的pageContext,request,session,application
pageContext.setAttribute("a",1111);
request.setAttribute("a",222);
session.setAttribute("a",3333);
application.setAttribute("a",444);
${a}--->1111
没有pageContext,--->222
再没有request,--->3333
再没有session---->444
...

<%= %>:变量必须值脚本中的变量
2、[ ]与.运算符
EL 提供“.“和“[ ]“两种运算符来存取数据。
EL表达式可以直接用”.”获取private修饰的属性
pageContext.setAttribute(“user”,user);
user.name{user.address}
empty 用来判断 是否为null和””
${empty user.name}

EL 隐含对象:
pageContext:
${pageContext.request.contextPath } 项目名
pageScope:
类型:java.util.Map
作用:取得page 范围的属性名称所对应的值

pageContext.setAttribute("name",1111);
request.setAttribute("name",2222);
session.setAttribute("name",3333);
application.setAttribute("name",444);
${pageScope.name}取出的是page中的a对应的值1111
${requestScope.name}-->2222
${sessionScope.name}-->3333
${applicationScope.name}-->444
。。。

param:
类型:java.util.Map
作用:如同request.getParameter(String name)。回传String 类型的值
${param.name}
paramValues:
类型:java.util.Map
作用:如同request.getParameterValues(String name)。回传
String[] 类型的值
${paramValues.name[index]}
cookie:
如同request.getCookies( )
initParam:
如同application.getInitParameter(String name)。回传String 类型的值

JSTL:

(JSP Standard Tag Library,JSP标准标签库)是一个不断完善的
开放源代码的JSP标签库,是由apache的jakarta小组来维护的。
JSTL只能运行在支持JSP1.2和Servlet2.3规范的容器上,如tomcat 4.x。在JSP 2.0中也是作为标准支持的。          

JSTL 所提供的标签函数库主要分为五大类:

(1)核心标签库(Core tag library):核心
(2)I18N 格式标签库(I18N-capable formatting tag library)
(3)SQL 标签库(SQL tag library)
(4)XML 标签库(XML tag library)
(5)函数标签库(Functions tag library):了解

使用jstl步骤:
1.导入jstl相关jar包(jstl.jar standard.jar)
2.使用<%@taglib %>指令导入jstl核心标签库
<%@ taglib uri=”http://java.sun.com/jsp/jstl/core” prefix = “c”%>
prefix:起别名的作用
“`

                                                          <c:set value="${pageContext.request.contextPath}" var="path"/>

顺序执行
<c:if test="${}">
</c:if>
<c:if test="${}">
</c:if>

switch case:相当于
<c:choose>
    <c:when test="${}">
    </c:when>
    <c:when test="${}">
    </c:when>
    <c:when test="${}">
    </c:when>
    <c:otherwise>
    </c:otherwise>
</c:choose>
//varStatus-->${status.count}计次数
<c:forEach varStatus="statux" items="${pageScope.list}" var="user">
${status.count}:username:${user.name} age:${user.age}<br>
</c:forEach>
//相当于favs.split(",");
<%
String faverates = "lol,dota,cf";
pageContext.setAttribute("faverates",favs);
%>
<c:forTokens items="${favs}" delims="," var="fav">
</c:forTokens>

```
varStatus状态:
index 索引从0开始
count 从1开始,也就是当前遍历次数
current 当前正在迭代的对象
first 是否是第一个
last 是否是最后一个
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值