JavaWeb ( 七 ) JSTL Tag标签

news/2024/5/18 14:57:49 标签: java, servlet, html, JSTL

JSTLEL_0">2.5.JSTL标签与EL表达式

2.5.1.EL表达式

EL表达式 : Expression Language

目的:为了使JSP写起来更加简单
格式:${expression}

  1. EL 提供“.“和“[ ]“两种运算符来存取数据。${user.name}, ${user[“name”] }
  2. 支持算术操作符, 关系操作符, 逻辑操作符; ${empty A} , ${a?b:c}, ${25*(4+3)}
  3. 支持作用域 pageScope, requestScope, sessionScope, applicationScope
  4. param: 代替 request.getParameter(); 用于页面之间传递值
  5. 可以使用JSTL函数标签库,也可以自定义函数

JSTL_17">2.5.2.JSTL标签

JSTL标签 : JavaServer Pages Standard Tag Library JSP 标准标签函数库

  1. 使用时要引入 jstl.jar, standard.jar 两个jar包

  2. 经常与${e}EL表达式结合使用

  3. 在使用标签时先要使用jsp的taglib指令

<%@taglib uri="http://html" title=java>java.sun.com/jsp/jstl/core" prefix="c" %> 
<%@taglib uri="http://html" title=java>java.sun.com/jsp/jstl/fmt" prefix="fmt" %> 
<%@taglib uri="http://html" title=java>java.sun.com/jsp/jstl/functions" prefix="fn" %>

<%@taglib uri="http://html" title=java>java.sun.com/jsp/jstl/xml" prefix="xml" %> 
<%@taglib uri="http://html" title=java>java.sun.com/jsp/jstl/sql"  prefix="sql" %> 

2.5.2.1.迭代标签 c:forEach

导入标签库

<%@taglib uri="http://html" title=java>java.sun.com/jsp/jstl/core" prefix="c" %> 

标签用法

<c:forEach  var= "别名"  items= " ${集合}"  varStatus= "序号" begin= "开始" end= "结束" step= "增幅" > 
	内容HTML代码
</c:forEach>

属性说明

属性说明
begin从第几条开始
end循环到第几条
step步长
var每一个元素的名称
items要循环的变量,使用${作用域中的名称}
varStatus序号对象, 有count, index, first, last等属性

2.5.2.2.判断标签 c:if

导入标签库

<%@taglib uri="http://html" title=java>java.sun.com/jsp/jstl/core" prefix="c" %> 

标签用法

<c:if test= "${条件}" > 
	内容HTML代码 
</c:if> 

注意 : 没有 else 标签

2.5.2.3.选择标签 c:choose

相当于switch结构

导入标签库

<%@taglib uri="http://html" title=java>java.sun.com/jsp/jstl/core" prefix="c" %> 

标签用法

<c:choose>
	<c:when test= " ${条件}" >内容HTML代码 </c:when>
	<c:when test= " ${条件}" >内容HTML代码 </c:when>
	<c:otherwise>内容HTML代码 </c:otherwise>
</c:choose>

注意 : 这是个结合嵌套标签, 有 多个标签共同使用

2.5.2.4.设值标签 c:set

对结构复杂的信息起别名, 可以别名调用

导入标签库

<%@taglib uri="http://html" title=java>java.sun.com/jsp/jstl/core" prefix="c" %> 

标签用法

设置别名
<c:set  value=“${信息}"   var=“别名"></c:set>

调用
<%=别名%>

2.5.2.5.输出标签 c:out

导入标签库

<%@taglib uri="http://html" title=java>java.sun.com/jsp/jstl/core" prefix="c" %> 

标签用法

<c:out value=“${要输出的信息}" default="默认值" escapeXml="是否转换特殊字符" ></c:out>

2.5.2.6格式化输出时间 fmt:formatDate

导入标签库

<%@taglib uri="http://html" title=java>java.sun.com/jsp/jstl/fmt" prefix="fmt" %>

标签用法

<fmt:formatDate value=" ${时间信息}" pattern="yyyy-MM-dd(输出模式)"></ fmt:formatDate>

注意 : value 属性必须是时间类型html" title=java>java.util.Date的信息

2.5.2.7.函数标签库

导入标签库

<%@taglib uri="http://html" title=java>java.sun.com/jsp/jstl/functions" prefix="fn" %>

标签用法

<c:choose>
	<c:when test="${fn:length(list)>0 }">
		${ list.size() }
	</c:when>
	<c:otherwise>
		没有信息
	</c:otherwise>
</c:choose>

说明 : 选择标签与函数标签 混合使用
在 EL表达式 中, 使用了 length() 函数 判断集合的长度

2.5.3.自定义标签

JSP自定义标签就是通过自定义标签实现类来实现复杂的、可重复利用的功能。简化jsp页面,提高代码的复用性

本质上说自定义标签 就是在页面上生成一段固定的HTML代码

2.5.3.1.定义标签类

html" title=java>java">public class  MyTag  extends TagSupport {

	@Override
	public int doStartTag throws JspException  {
		JspWriter out = this.pageContext.getOut();		
		try {
			out.print("HTML代码");
		} catch (IOException e) {
			e.printStackTrace();
		}
		return 	 super.doStartTag();
	}
}

2.5.3.2.配置标签信息

编写标签配置文件 , 默认放在 web-inf 文件夹下, 扩展名是 .tld

<?xml  version="1.0"   encoding="UTF-8"  ?>
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN"
                        "http://html" title=java>java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd" >
<taglib>
	<tlibversion>标签版本</tlibversion>
	<jspversion>JSP版本</jspversion>
	<uri>引用名</uri>
 
	<tag>
		<name>标签名</name>
		<tagclass>标签类路径</tagclass>
		<attribute>
			<name>属性名</name>
			<required>是否是必须的</required>
			<rtexprvalue>是否接收表达式</rtexprvalue>
		</attribute>
	</tag>
</taglib>

在使用的页面通过<%@taglib>引入标签文件

2.5.3.3.标签类家族

html" title=java>javax.html" title=servlet>servlet.jsp.tagext

在这里插入图片描述

2.5.3.4.标签类运行顺序 IterationTag

在这里插入图片描述


http://www.niftyadmin.cn/n/301778.html

相关文章

计算机系统-虚拟存储器

例行前言&#xff1a; 本篇不是学习课程时的笔记&#xff0c;是重看这本书时的简记。对于学习本课程的同学&#xff0c;未涉及的内容不代表考试不涉及(mmap&#xff0c;动态存储器分配&#xff0c;linux虚拟存储器)。本章的大部分内容已经在OS中学习过了&#xff0c;但本章内容…

虚拟桌面无法访问官网wiresharp报错encrypted alert

近日&#xff0c;遇一棘手问题。 官网www.xxx.com 虚拟桌面访问域名前&#xff0c;AD域控服务器中&#xff0c;需要配置对应域名。 如&#xff1a;访问a.xxx.com&#xff0c;则AD域控服务器配置映射关系&#xff0c;a.xxx.com---192.168.100.21 -配置官网www.xxx.com解析19…

【软考|软件设计师】专业英语(软考真题)

目录 全文翻译&#xff1a; 字段翻译&#xff1a; DerOps is a continuous simplification process of maintaining a delicate balance among functionality, usability and security of a software both in terms of its development and oprations. Software engineeri…

【建模】法线贴图基本介绍及工具推荐

法线贴图基本介绍及工具推荐 一、基本介绍1. 什么是法线贴图&#xff1f;2. 制作法线贴图的步骤3. 制作法线贴图的注意事项 二、工具推荐1. 常规工具2. 在线工具 一、基本介绍 1. 什么是法线贴图&#xff1f; 法线贴图&#xff08;Normal Map&#xff09;是一种用于在游戏和计…

SpringCloud 微服务系列——Spring Cloud Alibaba 微服务工具集

✅作者简介&#xff1a;2022年博客新星 第八。热爱国学的Java后端开发者&#xff0c;修心和技术同步精进。 &#x1f34e;个人主页&#xff1a;Java Fans的博客 &#x1f34a;个人信条&#xff1a;不迁怒&#xff0c;不贰过。小知识&#xff0c;大智慧。 &#x1f49e;当前专栏…

【C++入门】auto关键字(C++11) + 指针空值nullptr(C++11)

&#x1f466;个人主页&#xff1a;Weraphael ✍&#x1f3fb;作者简介&#xff1a;目前学习C和算法 ✈️专栏&#xff1a;C航路 &#x1f40b; 希望大家多多支持&#xff0c;咱一起进步&#xff01;&#x1f601; 如果文章对你有帮助的话 欢迎 评论&#x1f4ac; 点赞&#x1…

Spring的第十三阶段:Spring的数据访问(01)

Spring之数据访问 1、Spring数据访问工程环境搭建 创建一个Java工程&#xff0c;导入需要的Jar包 1、Spring的核心jar包 spring-beans-4.0.0.RELEASE.jar spring-context-4.0.0.RELEASE.jar spring-core-4.0.0.RELEASE.jar spring-expression-4.0.0.RELEASE.jar2、Spring切面…

HttpClient入门介绍

介绍 介绍 HttpClient 是Apache Jakarta Common 下的子项目&#xff0c;可以用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包&#xff0c;并且它支持 HTTP 协议最新的版本和建议。 作用&#xff1a; 发送HTTP请求 接收响应数据 应用场景&#xff1a; …