jstl和el用法

本文详细介绍了JSP标准标签库(JSTL)的使用方法,包括如何引入不同功能的标签库,以及核心标签库中的迭代和流程控制标签的具体用法。同时,还介绍了表达式语言(EL)的基础知识及其在JSP中的应用。

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

JSTL一般要配合EL表达式一起使用,
**
JSTL(JSP Standard Tag Library) JSP标准标签库,则必须引用jstl.jar和 standard.jar两个包。且在jsp页面中引入**

1、标签库分类
在这里插入图片描述
2.页面中引入
<%@ taglib uri=“http://java.sun.com/jsp/jstl/core” prefix=“c”%>//核心标签库
<%@ taglib uri=“http://java.sun.com/jsp/jstl/fmt” prefix=“fmt”%>//格式化库
<%@ taglib uri=“http://java.sun.com/jsp/jstl/xml” prefix=“x”%>//xml 库
<%@ taglib uri=“http://java.sun.com/jsp/jstl/sql” prefix=“sql”%>//sql标签库
<%@ taglib uri=“http://java.sun.com/jsp/jstl/functions” prefix=“fn”%>//函数库
a、核心库

	Ⅰ、迭代标签
	<c:forEach     var=”name”     items=”Collection”     varStatus=”StatusName”     begin=”begin”            end=”end”     step=”step”>    
			本体内容
	</c:forEach>
	var设定变量名用于存储从集合中取出元素。
	items指定要遍历的集合。
	varStatus设定变量名,该变量用于存放集合中元素的信息(可选)。
	begin、end用于指定遍历的起始位置和终止位置(可选)。
	step指定循环的步长(可选)。
	遍历map举例
	 <c:forEach     var="nickAndfxname"     items="item.nickAndfxnames"  >
            ${nickAndfxname.key}/${nickAndfxname.value}&nbsp&nbsp
    </c:forEach>
	
	**Ⅱ、流程控制标签**
		**<c:if>标签**
		 举例:
		 //写法一
		<c:if test="testCondition" var="varName" [scope="{page|request|session|application}"]/>
		
		//写法二
		<c:if test="testCondition" [var="varName"] [scope="{page|request|session|application}"]>
		    标签体内容
		</c:if>


         **<c:choose>、<c:when>和<c:otherwise>标签,类似 if -  else if   -  else** 
         举例:
         <c:choose>
			    <c:when test="条件1">
			        //业务逻辑1
			    </c:when>
			    <c:when test="条件2">
			        //业务逻辑2
			    </c:when>
			    <c:when test="条件n">
			        //业务逻辑n
			    </c:when>
			    <c:otherwise>
			        //业务逻辑
			    </c:otherwise>
			</c:choose>

b、xml库

	 **通用标签**
		**<c:out> 用来显示数据对象(字符串、表达式)的内容或结果,**
	    举例:<c:out value="字符串">

	    **<c:set> 用于将变量存取于 JSP 范围中或 JavaBean 属性中**
	    举例:
	     <body>
			  <c:set value="张三" var="name1" scope="session"></c:set>
			  <c:set var="name2" scope="session">李四</c:set>
			  <c:set value="赵五" target="${person}" property="name"></c:set>
			  <c:set target="${person}" property="age">19</c:set>
			  <li>从session中得到的值:${sessionScope.name1}</li>
			  <li>从session中得到的值:${sessionScope.name2}</li>
			  <li>从Bean中获取对象person的name值:<c:out value="${person.name}"></c:out></li>
			  <li>从Bean中获取对象person的age值:<c:out value="${person.age}"></c:out></li>
		</body>
		
		**<c:remove> 主要用来从指定的 jsp 范围内移除指定的变量。**
		举例:
       <c:remove var="变量名" [scope="page|request|session|application"]></c:remove>

	   **<c:catch> 用来处理 JSP 页面中产生的异常,并存储异常信息**
	   举例:
	   <c:catch var="name1">
		      容易产生异常的代码
		</c:catch>
		如果抛异常,则异常信息保存在变量 name1 中。

**EL(Expression Language)表达式语言 需要引入任何jar包,只要jsp/servlet容器实现了J2EE1.4/servlet2.4、JSP2.0规范就可以 **
1、语法结构
${expression}

2、[]与.运算符
EL 提供.和[]两种运算符来存取数据
当要存取的属性名称中包含一些特殊字符,如.或?等并非字母或数字的符号,就一定 要使用 [] 例如: u s e r . M y − N a m e 应 当 改 为 {user.My-Name}应当改为 user.MyName{user[“My-Name”] }
一般写法${sessionScope.user[data]}中data 是一个变量

3、EL隐含对象
与范围有关的EL 隐含对象包含以下四个:pageScope、requestScope、sessionScope, applicationScope,cookie;
举例:
${sessionScope.username}
${cookie.userCountry}

4、条件标签
a.算术运算符有五个:+、-、KaTeX parse error: Expected 'EOF', got '&' at position 77: … c.逻辑运算符有三个:&̲&或and、||或or、!或n…{empty param.name}、 A ? B : C 、 {A?B:C}、 A?B:C{A(B+C)}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值